1
我有一個調用bash命令的芹菜任務(我可以使用os.system()或subprocess.Popen())。撤銷調用芹菜子進程的任務
當我打電話:
revoke(task_id, terminate=True)
我的任務,子進程執行我的bash命令和創建我的任務還沒有死亡。有沒有辦法做到這一點 ?
我有一個調用bash命令的芹菜任務(我可以使用os.system()或subprocess.Popen())。撤銷調用芹菜子進程的任務
當我打電話:
revoke(task_id, terminate=True)
我的任務,子進程執行我的bash命令和創建我的任務還沒有死亡。有沒有辦法做到這一點 ?
根據文檔,當terminate=True
發送SIGTERM信號。
http://docs.celeryproject.org/en/latest/userguide/workers.html#revoke-revoking-tasks
由於SIGTERM可以忽略不計,也許嘗試發送一個SIGKILL?
我已經嘗試過SIGKILL,但似乎信號沒有傳輸到子進程 – Archimondain
當你開始你的子進程時,你在使用'shell = True'嗎? – MrName
不,當我這樣做的時候,事情並不順利。你是說SIGKILL信號應該轉移到子進程? – Archimondain