2010-06-16 27 views
5

Tengo un script de python de ejecución larga que deseo poder finalizar desde otro script de python. Idealmente, lo que estoy buscando es una manera de establecer una ID de proceso para la primera secuencia de comandos y poder ver si se está ejecutando o no a través de esa ID a partir de la segunda. Además, me gustaría poder finalizar ese largo proceso.Terminar un script de python desde otro script de python

¿Existen métodos abreviados geniales para que esto suceda?

Además, estoy trabajando en un entorno Windows.

Hace poco encontré una respuesta alternativa aquí: Check to see if python script is running

Respuesta

5

Usted podría obtener su propio PID (Identificador de proceso) a través de

import os 
os.getpid() 

y matar a un proceso en el Unix

import os, signal 
os.kill(5383, signal.SIGKILL) 

para matar en el uso de Windows

import subprocess as s 
def killProcess(pid): 
    s.Popen('taskkill /F /PID {0}'.format(pid), shell=True) 

Puede enviar el PID al otro programa o puede buscar en la lista de procesos para encontrar el nombre del otro script y matarlo con el script anterior.

Espero que eso te ayude.

+0

os.kill es una operación exclusiva de Unix. – Nick

+0

os.kill se pueden emular: http://docs.python.org/faq/windows.html#how-do-i-emulate-os-kill-in-windows – Nick

1

Está buscando subprocess module.

import subprocess as sp 

extProc = sp.Popen(['python','myPyScript.py']) # runs myPyScript.py 

status = sp.Popen.poll(extProc) # status should be 'None' 

sp.Popen.terminate(extProc) # closes the process 

status = sp.Popen.poll(extProc) # status should now be something other than 'None' ('1' in my testing) 

subprocess.Popen comienza la secuencia de comandos de Python externo, lo mismo que escribir 'myPyScript.py pitón' en una consola o terminal.

El estado de subprocess.Popen.poll (extProc) será 'Ninguno' si el proceso todavía se está ejecutando, y (para mí) 1 si se ha cerrado desde este script. No estoy seguro de cuál es el estado si se ha cerrado de otra manera.

Cuestiones relacionadas