### 捕獲SIGKILL
SIGKILL是常見的Linux信號,我們使用`kill`命令殺掉進程也就是像進程發送SIGKILL信號。
和其他信號不同,[SIGKILL](https://en.wikipedia.org/wiki/Unix_signal#SIGKILL)和SIGSTOP是不可被Catch的,因此下面的代碼是能編譯通過但也是無效的,更多細節可以參考[golang/go#9463](https://github.com/golang/go/issues/9463).
~~~
c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGKILL, syscall.SIGSTOP)
~~~
### 注意事項
這是Linux內核的限制,這種限制也是為了讓操作系統有可能控制進程的生命周期,理解后我們也不應該去嘗試捕獲SIGKILL。
不過還是有人這樣去做,最后結果也不符合預期,這需要我們對底層有足夠的理解。
- 前言
- 致謝
- 概述
- 使用代碼
- 使用Docker
- 進程基礎
- 進程是什么
- Hello World
- PID
- PPID
- 使用PID
- 進程名字
- 進程參數
- 輸入與輸出
- 并發與并行
- 進程越多越好
- 進程狀態
- 退出碼
- 進程資源
- 死鎖
- 活鎖
- POSIX
- Nohup
- 運行進程
- Go編程實例
- 衍生新進程
- 執行外部程序
- 復制進程
- 進程進階
- 文件鎖
- 孤兒進程
- 僵尸進程
- 守護進程
- 進程間通信
- 信號
- Linux系統調用
- 文件描述符
- Epoll
- 共享內存
- Copy On Write
- Cgroups
- Namespaces
- 項目實例Run
- 項目架構
- 代碼實現
- 注意事項
- 創建目錄權限
- 捕獲SIGKILL
- Sendfile系統調用
- 后記
- 參考書籍
- 項目學習
- 再次感謝