Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- """
- This programm kills all processes by given process name with SIGTERM
- """
- import sys
- import signal
- import os
- from pathlib import Path
- def killall(name):
- for path in Path('/proc').glob('*'):
- if path.name.isdigit():
- try:
- comm_path = path / 'comm'
- comm = comm_path.read_text().strip()
- if name == comm:
- pid = int(path.name)
- print('Killing process', path.name, file=sys.stdout)
- os.kill(pid, signal.SIGTERM)
- except (PermissionError, FileNotFoundError):
- pass
- except Exception as e:
- print('Got exception:', e, file=sys.stdout)
- return 1
- return 0
- def main():
- if not sys.stdin.isatty():
- name = sys.stdin.read().strip()
- elif len(sys.argv) != 2:
- print(__doc__)
- print(sys.argv[0], 'exact_process_name')
- print('or')
- print('echo procname |', sys.argv[0])
- sys.exit(1)
- else:
- name = sys.argv[1]
- return killall(name)
- if __name__ == '__main__':
- sys.exit(main())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement