killall.py 671 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env python
  2. # Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
  3. # Use of this source code is governed by a BSD-style license that can be
  4. # found in the LICENSE file.
  5. """
  6. Kill a process by name.
  7. """
  8. import os
  9. import sys
  10. import psutil
  11. def main():
  12. if len(sys.argv) != 2:
  13. sys.exit('usage: %s name' % __file__)
  14. else:
  15. NAME = sys.argv[1]
  16. killed = []
  17. for proc in psutil.process_iter():
  18. if proc.name() == NAME and proc.pid != os.getpid():
  19. proc.kill()
  20. killed.append(proc.pid)
  21. if not killed:
  22. sys.exit('%s: no process found' % NAME)
  23. else:
  24. sys.exit(0)
  25. sys.exit(main())