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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8eb65d38f23d632444979c6fc3b1d77997e67f4dad1483a297688a812f19437 |
|
MD5 | 4336e75264fd9e0e85c37696b557fe24 |
|
BLAKE2b-256 | 9638412f19af0881b79a6e8a3a7f7c1ddd9ac099cbafd59d2917d05aad32c3fa |
File details
Details for the file subprocesskiller-0.11-py3-none-any.whl
.
File metadata
- Download URL: subprocesskiller-0.11-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7b6f340ec0cd85d0c6eaaa3bd55f5cd84c863870c39a30ad9d7bd64775f7ffd |
|
MD5 | 3baf98a509dc5f50f76f290885e7f5f4 |
|
BLAKE2b-256 | c1a233d93d7718f7246c02da6cc38252dee1072e5b21a88e684b890a8e1e1222 |