/ / Ottenere Python per uccidere un pid - python, python-2.7, pid

Ottenere Python per uccidere un pid - python, python-2.7, pid

Questo è il codice attuale che ho adesso e mi chiedo come posso ottenere di uccidere il pid.

import commands, signal
stuid = commands.getoutput("pgrep student")
deaid = commands.getoutput("pgrep daemon")
print stuid
os.kill(stuid, signal.SIGKILL)
print deaid
os.kill(deaid, signal.SIGKILL)

Modificare: Quindi, alla fine, ho appena usato os.system per far sì che il terminale eseguisse il comando kill, quindi posiziona il pid dopo l'uccisione.

import commands, os
stuid = commands.getoutput("pgrep student")
deaid = commands.getoutput("pgrep daemon")
print stuid
os.system("kill "+stuid)
print deaid
os.system("kill "+deaid)

Nel complesso questo è il mio risultato finale. Spero che questo aiuti le persone in futuro.

risposte:

2 per risposta № 1

Leggere questa risposta.

A proposito una soluzione più pitonica potrebbe essere questa:

    import re
import psutil

convicted = re.compile(r"student|daemon")

for p in psutil.process_iter():
if convicted.search(p.name):
p.terminate()

Modifica: per essere più precisi ho cambiato la linea p.kill() a p.terminate(). Il comune kill in bash è in realtà lo stesso di p.terminate() (invia il segnale TERM). Ma il p.kill() corrisponde a kill -9 in bash (invia il segnale KILL).