Skip to main content

Some functions for killing (sub)processes + children with ctypes - works with shell=True

Project description

Some functions for killing (sub)processes + children with ctypes - works with "shell=True"

pip install subprocesskiller

Tested against Windows 10 / Python 3.10 / Anaconda

Python

from subprocesskiller import get_pro_properties, subprocess_timeout, kill_process_children_parents, kill_subprocs, kill_pid
# Get a dictionary of properties for all running processes
processprops = get_pro_properties()

# Kill all child processes of PID 9348 whose parent process has the executable name "python.exe".
# Don't kill any processes with the name "conhost.exe".
kill_process_children_parents(pid=9348,max_parent_exe='python.exe',dontkill=('Caption', 'conhost.exe'))


# Execute "ping -t 8.8.8.8" in a subprocess with a timeout of 4 seconds.
# If the process doesn't complete within 4 seconds, kill it and all of its child processes.
res = subprocess_timeout(
    "ping -t 8.8.8.8",
    shell=True,
    timeout=4,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
    stdin=subprocess.PIPE,
)

# You can read the output (stderr/stdout) from a killed process
while g := res.stdout.readline():
    print(g)

# Execute "ping -t 8.8.8.8" in a subprocess.
# Wait for 2 seconds, then kill all running python subprocess and all of its child processes except conhost.exe
subprocess.Popen("ping -t 8.8.8.8", shell=True)
time.sleep(2)
kill_subprocs(dontkill=(("Caption", "conhost.exe"),))


# Kills a pid 
kill_pid(pid=9348)

Command line

This is an example of how to use the Python script from the command line to kill a specific process and all its child processes. In this case, the script is being used to kill a process with PID 7348 that has a parent process with the name "chrome.exe".

To run the script from the command line, navigate to the directory where the script is saved and enter the following command:

.\python.exe .\__init__.py --pid 7348 --max_parent_exe chrome.exe

This command specifies the PID of the process to be killed with the --pid flag and the name of the parent process that the process should have with the --max_parent_exe flag. In this case, the parent process name is "chrome.exe".

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

subprocesskiller-0.11.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

subprocesskiller-0.11-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file subprocesskiller-0.11.tar.gz.

File metadata

  • Download URL: subprocesskiller-0.11.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for subprocesskiller-0.11.tar.gz
Algorithm Hash digest
SHA256 f8eb65d38f23d632444979c6fc3b1d77997e67f4dad1483a297688a812f19437
MD5 4336e75264fd9e0e85c37696b557fe24
BLAKE2b-256 9638412f19af0881b79a6e8a3a7f7c1ddd9ac099cbafd59d2917d05aad32c3fa

See more details on using hashes here.

File details

Details for the file subprocesskiller-0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for subprocesskiller-0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 f7b6f340ec0cd85d0c6eaaa3bd55f5cd84c863870c39a30ad9d7bd64775f7ffd
MD5 3baf98a509dc5f50f76f290885e7f5f4
BLAKE2b-256 c1a233d93d7718f7246c02da6cc38252dee1072e5b21a88e684b890a8e1e1222

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page