Kill

如何中斷watch命令?

  • May 18, 2018

我有一個將一些資訊列印到標準輸出的程序,我像這樣執行它:

watch -n 0.1 myprogram

我的問題是我需要myprogram乾淨地退出,呼叫適當的解構子來釋放系統範圍的互斥鎖。如果我按CTRL+ C,則將watch被殺死並且myprogram沒有機會乾淨地退出。

有沒有辦法watch乾淨地退出,以便在返回之前等待子程序完成?

man頁面簡單地說:

手錶會一直執行直到被打斷

關於您問題的第一部分“有沒有辦法乾淨地退出手錶? ”,是的,您可以通過發送信號來停止程序。

首先,您需要找出正在執行的程序 ID (PID)watch。您可以按名稱執行此操作:

pidof watch

或按使用者以及如何查看 Unix/linux 中特定使用者創建的程序

ps -u ${USER} | grep -i watch | cut -d " " -f 1

然後通過發送信號停止watch

kill -IT ${PID}
kill -INT $(pidof watch)

你問題的第二部分更多的是關於處理信號

引用自:https://unix.stackexchange.com/questions/444303