Skip to main content

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.

DON'T SIGKILL 2

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

https://github.com/kuralabs/ckill

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)

Source distribution for ckill 1.0.1
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)

Table of built distributions (wheels) for ckill 1.0.1
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page