Linux:向進程發送信號的 3 種方法
如何向另一個進程發送信號?你能解釋一下在 linux 環境中向進程發送信號的所有可用選項嗎?
您可以使用本文中介紹的一種方法向進程發送各種信號。
1. 使用 Kill 向進程發送信號
使用 kill 命令向進程發送信號。例如,如果要向進程“a.out”發送 USR1 信號,請執行以下操作。
$ ps -C a.out PID TTY TIME CMD 3699 pts/1 00:00:00 a.out $ kill -s USR1 3699
注意:請查看之前發過的文章 KILL進程的 4 種方法 - kill、killall、pkill、xkill。
2. 從另一個進程向一個進程發送信號
您可以使用 UNIX 系統調用 kill(來自 C 程序)將信號從一個進程發送到另一個進程。以下 C 代碼片段顯示了如何使用 kill 命令。
Kill 系統調用有兩個參數:1)需要發送信號的進程的 PID(進程 ID)2)需要發送到進程的信號。Kill 命令成功時返回 0。
int send_signal (int pid) { int ret; ret = kill(pid,SIGHUP); printf("ret : %d",ret); }
3. 從鍵盤向進程發送信號
當一個進程在終端上運行時,您可以使用某些特定的鍵組合從鍵盤向該進程發送信號。以下是幾個例子。
SIGINT (Ctrl + C) - 你已經知道了。按 Ctrl + C 會終止正在運行的前臺進程。這會將 SIGINT 發送到進程以殺死它。
您可以通過按 Ctrl + \ 或 Ctrl + Y 向進程發送 SIGQUIT 信號
您可以使用“stty -a”命令查看向進程發送特定信號的鍵映射,如下所示。
$ stty -a | grep intr intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
linux 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。