[英]Shell script to stop an application at power down in linux
我在c中用愛迪生設備寫了一個姿勢感知代碼。 我在加電時成功調用了應用程序。 但我需要一個shell腳本來關閉此應用程序。
我試過kill {pid}
命令行操作。 即使我殺了命令,在斷電設備期間需要額外的5分鍾來停止該應用程序。 我在這里錯過了什么..
您的應用程序應該顯式處理一些signal(7) -s,特別是在關閉時發送的SIGTERM
(由某個系統程序執行kill(2) )。
發送SIGKILL
(例如kill -9
或kill -KILL
)是不安全的(特別是服務器維護磁盤上的某些狀態,例如數據庫服務器,還有任何具有某種持久狀態,配置或日志的軟件......)因為被殺死的程序沒有機會清理它的混亂,刷新它的緩沖區,並在磁盤上保存一致的狀態。
因此,強大的策略是kill -TERM
,然后幾秒鍾后kill -QUIT
,幾秒鍾后kill -KILL
。 因此,健壯的應用程序應該處理SIGTERM
和SIGQUIT
(但不能捕獲SIGKILL
)......您可能會處理SIGPWR
(但不是每個系統都有它或正確管理它;某些UPS硬件和軟件都可以)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.