je dois arrêter un processus créé à l'aide subprocess.call
en Python quand je reçois un clavier d'interruption (ctrl-c)Tuer subprocess.call après KeyboardInterrupt
La question est p ne soit pas une valeur assignée à jusqu'à ce qu'il termine l'exécution
p = subprocess.call (cmd)
Je ne peux pas utiliser os.kill
pour tuer cela. En outre, ne peut pas utiliser shell=True
pour des raisons.
Ce que je voudrais faire est:
try:
p = subprocess.call(cmd)
except KeyboardInterrupt:
os.kill(p.pid,signal.SIGTERM)
sys.exit('exited after ctrl-c')
Vous pouvez obtenir le pid d'un processus enfant tel que décrit ici: http://stackoverflow.com/questions/3332043/obtaining-pid-of-child-process –
Merci, mais c'est * nix spécifique. J'ai besoin de compat sur Windows aussi. – anujdeshpande