import shutil
import time
import signal
+import terminate
if os.name == 'nt':
from win32com.client import GetObject
else:
pids = [pid for pid in os.listdir('/proc') if pid.isdigit ()]
for pid in pids:
- result.append ((pid, open (os.path.join ('/proc', pid, 'comm'), 'rb').read ()
+ with open (os.path.join ('/proc', pid, 'cmdline'), 'rb') as p:
+ cmdline = p.read ().split ('\x00')
+ if len (cmdline) > 0:
+ result.append ((pid, cmdline[0]))
return result
def main ():
gnunet_procs.append (p)
for p in gnunet_procs:
if re.match (r'gnunet-service-arm', p[1]):
- print ("killing arm {0:5} {1}".format (p[0], p[1]))
- os.kill (p[0], signal.SIGTERM)
+ print ("killing arm process {0:5} {1}".format (p[0], p[1]))
+ try:
+ terminate.safe_terminate_process_by_pid (int (p[0]), 1)
+ except OSError as e:
+ print ("failed: {0}".format (e))
+ pass
for p in gnunet_procs:
if not re.match (r'gnunet-service-arm', p[1]):
- print ("killing arm {0:5} {1}".format (p[0], p[1]))
- os.kill (p[0], signal.SIGTERM)
+ print ("killing non-arm process {0:5} {1}".format (p[0], p[1]))
+ try:
+ terminate.safe_terminate_process_by_pid (int (p[0]), 1)
+ except OSError as e:
+ print ("failed: {0}".format (e))
+ pass
if __name__ == '__main__':
sys.exit (main ())