Utility that allows to safely and cleanly terminate a multiprocess application that implements a shutdown, clean-up, or exit routine when a SIGTERM is received.
ckill sends a SIGTERM signal to the main process, waits for it to die, and if it doesn’t after some timeout, SIGKILL all its subprocesses in the process tree from higher (recent) to lower (former) PID value.
In this way, ckill allows the process to terminate correctly, but if it malfunctions when terminating, or if it takes too much time (determined by the user) all its subprocesses are killed and then the main process itself, leaving no zombie processes behind.
If you’re developing a Python multiprocess application, see also https://github.com/kuralabs/multiexit
Install
pip3 install ckill
Optionally, install the following package to enable color log output.
pip3 install colorlog
Usage
usage: ckill [-h] [-v] [--version] [--no-color] [--timeout-s TIMEOUT_S] PID
Cleanly kills a process
positional arguments:
PID PID of process to kill
optional arguments:
-h, --help show this help message and exit
-v, --verbose Increase verbosity level
--version show program's version number and exit
--no-color Do not colorize the log output
--timeout-s TIMEOUT_S
Maximum time to wait for the process to die, in seconds.
Repository
Changelog
1.0.1 (2020-12-01)
Fix
Fix bad psutil API call.
1.0.0 (2020-10-15)
New
Initial release.
License
Copyright (C) 2020 KuraLabs S.R.L
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
Metadata
Release files for ckill 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ckill-1.0.1.tar.gz | 8.7 kB | Without provenance | Details for ckill-1.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ckill-1.0.1-py3-none-any.whl | Python 3 | none | any | Details for ckill-1.0.1-py3-none-any.whl |
Total release size: 17.4 kB
Release files / ckill-1.0.1.tar.gz
| Download URL | ckill-1.0.1.tar.gz |
|---|---|
| Size | 8.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8aeb7570b8f5e6f6379b44cc35f5432997efa39694f2a219f39eddcddd2e3174
|
|
BLAKE2b-256 checksum How to use checksums |
3af6a2e5e356c93b03401c09e3bb365bfa78e37f5c7fa269f7e2d7cea8e1ac58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
|
Release files / ckill-1.0.1-py3-none-any.whl
| Download URL | ckill-1.0.1-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
95ac92f0c961307f696071c18c6165aa3f89ac78104ef9f960dedb0bee6ab001
|
|
BLAKE2b-256 checksum How to use checksums |
0e23b65a262fabb046319ebb5c6e14ed3761c3f4cf302f393ea68d24c88f661b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
|
Security for ckill 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.