2017-03-07 34 views
1

我有一個調用bash命令的芹菜任務(我可以使用os.system()或subprocess.Popen())。撤銷調用芹菜子進程的任務

當我打電話:

revoke(task_id, terminate=True) 

我的任務,子進程執行我的bash命令和創建我的任務還沒有死亡。有沒有辦法做到這一點 ?

回答

2

根據文檔,當terminate=True發送SIGTERM信號。

http://docs.celeryproject.org/en/latest/userguide/workers.html#revoke-revoking-tasks

由於SIGTERM可以忽略不計,也許嘗試發送一個SIGKILL?

+0

我已經嘗試過SIGKILL,但似乎信號沒有傳輸到子進程 – Archimondain

+0

當你開始你的子進程時,你在使用'shell = True'嗎? – MrName

+0

不,當我這樣做的時候,事情並不順利。你是說SIGKILL信號應該轉移到子進程? – Archimondain