Signals(信號) | Linux
Linux 命令行界面使用信號作為進程之間的通信,了解 Linux 信號對於管理和與運行中的進程非常重要。
解釋 Linux 信號:
Linux 信號是通知進程有關特定事件的軟件中斷。一些常用的信號包括:
- SIGHUP (1) :
- 挂斷信號,通常用於重新啟動進程
- SIGINT (2) :
- 信號中斷(Signal interrupt),程序請中斷的意思,通常由按下Ctrl + C觸發
- SIGQUIT (3) :
- Ctrl + D ⇒ : 直接終止你的程序
- SIGKILL (9) :
- 強制終止一個進程
- program assassination(程序暗殺),shutdown immediately
- SIGTERM (15) :
- 要求進程優雅終止
- Signal terminate
- 通常是在shutdown的之前,會做這個動作,把所有程序都關閉
通常來說,如果你不知道要怎麼退出或終止的話:
- 先試一試Ctrl + C
- 不行的話再試一試Ctrl + D
- 演示命令行:
# 背景執行yes,且不斷將內容寫入到/dev/null中(/dev/null就是不想要記錄的東西都可以往這裡丟)
yes > /dev/null &
# 搜尋程序中是"yes" keyword的進程(PID)
ps aux | grep yes
# 顯示不同的信號種類
kill -l
# 向PID 1234的進程發送SIGTERM
kill -15 1234
# 強制終止PID 5678的進程
kill -9 5678
sudo kill -SIGKILL <process id>
# 通過發送SIGHUP重新啟動進程
kill -1 7890
# 中斷進程(Ctrl + C)
進程管理:
通過利用Linux信號,用戶可以正確地控制運行中的進程,實現關機、重新啟動,甚至在必要時進行緊急終止。了解信號的差異,提高了在命令行上進行精準的進程管理。
Tags