我想要什么?创建一个启动和终止通信协议的脚本
我有什么? 我有一个python脚本打开一个shell脚本,这个shell脚本初始化协议。当我杀死父进程时,一切都很顺利(但在最终项目中,父进程必须保持活动状态),但是当我杀死子进程时,它变成了僵尸函数,并且我的协议继续运行。
我认为可能存在的问题:我' m"杀死" shell脚本(不是协议,这是我想要的)
我启动shell脚本的行:
`protocolProcess = subprocess.Popen(["sh", arquivo], cwd = localDoArquivo) #inicia o protocolo`
protocolProcessPID = protocolProcess.pid #armazena o pid do protocolProcess
我杀死shell脚本的行:os.kill(protocolPID, signal.SIGTERM)
嗯,那就是它!如果有人能帮助我,我将非常感激
答案 0 :(得分:1)
僵尸进程是父进程尚未获得的进程。
父进程将保留这些进程处理程序直到时间结束,或直到它读取进程退出状态,或者本身被杀死。
听起来父进程需要更好地处理它如何产生和收获它的孩子。简单地杀死一个子进程并不足以释放僵尸进程。