Sto provando a scrivere un breve script in python che avvia un altro codice Python nel sottoprocesso se non è già stato avviato, altrimenti termina l'applicazione terminale & (Linux).Come terminare il processo da Python usando pid?
così sembra:
#!/usr/bin/python
from subprocess import Popen
text_file = open(".proc", "rb")
dat = text_file.read()
text_file.close()
def do(dat):
text_file = open(".proc", "w")
p = None
if dat == "x" :
p = Popen('python StripCore.py', shell=True)
text_file.write(str(p.pid))
else :
text_file.write("x")
p = # Assign process by pid/pid from int(dat)
p.terminate()
text_file.close()
do(dat)
ha problema di mancanza di conoscenza per nome proces da pid quale app si legge dal file ".proc". L'altro problema è che l'interprete dice che la stringa denominata dat non è uguale a "x" ??? Cosa mi sono perso?
Perché stai passando 'shell = True'? AFAIK non è necessario nel tuo caso d'uso. Si noti inoltre che quando si usa 'shell = True' il pid restituito da' p.pid' è * not * il pid del processo python, ma il pid della shell spawn per eseguire questo processo. – Bakuriu
+1 per il tuo commento, ma lo ritengo appropriato perché devo chiudere anche il terminale. – Alex