簡體   English   中英

python-twisted和SIGKILL

[英]python-twisted and SIGKILL

我有一個使用扭曲框架的python應用程序。

我利用存儲在twistd生成的pidfile中的值。 啟動程序腳本會檢查它是否存在,如果pidfile已存在,則不會生成守護程序進程。

但是,twistd在獲取SIGKILL信號時不會刪除.pid文件。 這使得啟動程序腳本認為守護程序已在運行。

我意識到停止守護進程的正確方法是使用SIGTERM信號,但問題是當啟動守護進程的用戶注銷時,守護進程永遠不會收到SIGTERM信號,所以顯然它被SIGKILL殺死了。 這意味着一旦用戶注銷,他將永遠無法再次啟動守護進程,因為pidfile仍然存在。

在這種情況下,有什么方法可以讓文件消失嗎?

signal(2)手冊頁:

無法捕獲或忽略信號SIGKILLSIGSTOP

因此,該進程無法運行任何清理代碼來響應該信號。 通常,您只使用SIGKILL來終止不響應SIGTERM (可以捕獲)的進程。

您可以更改啟動器(或將其包裝在另一個啟動器中)並在嘗試重新啟動twistd之前刪除pid文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM