【linux】循序漸進學運維-基礎篇-kill命令


大家好,我是高勝寒,本文是Linux運維-循序漸進學運維-基礎篇的第46篇文章。

kill命令屬於系統進程管理命令。

1. 命令格式

kill [參數][進程號】

2. 命令功能

發送指定的信號到相應的京城,不指定型號將發送SIGTERM(15)終止進程。

3. 命令參數

參數 含義
-l 信號,若果不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱
-a 當處理當前進程時,不限制命令名和進程號的對應關係
-p 指定kill 命令只打印相關進程的進程號,而不發送任何信號
-s 指定發送信號
-u 指定用戶
-v 指定用戶
–version 顯示版本信息

4. kill相關的命令

關閉進程3個命令:kill killall pkill
kill關閉進程:kill 進程號 關閉單個進程
killall和pkill 命令用於殺死指定名字的進程

5. 關於kill的信號

kill -l
在這裏插入圖片描述常用的信號:

信號編號 信號名 作用
1) SIGHUP 重新加載配置
2) SIGINT 鍵盤中斷 crtl+c
3) SIGQUIT 退出
9) SIGKILL 強制終止
15) SIGTERM 終止(正常結束),缺省信號
18) SIGCONT 繼續
19) SIGSTOP 停止
20) SIGTSTP 暫停 crtl+z

6. 使用方法

1) 徹底殺死進程:

查看進程id
在這裏插入圖片描述
殺死進程
[root@zmgaosh ~]# kill -9 2287

在這裏插入圖片描述

2)殺死程序
[root@zmgaosh ~]# yum install httpd   #安裝http
[root@zmgaosh ~]# systemctl  start httpd   # 啓動http

查看進程ID

[root@zmgaosh ~]# ps -aux |grep http
root     10448  0.0  0.1 230432  5184 ?        Ss   19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10531  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10532  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10533  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10534  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10535  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
root     13745  0.0  0.0 112728   972 pts/0    R+   19:49   0:00 grep --color=auto http

可以看到http的進程有點多,我們如果用kill -9 需要一個一個殺死,這個使用pkill的作用就顯現出來了。

pkill 或者killall 可以一次性殺死程序。

所以此處可以用

pkill -9 httpd
或
killall -9 httpd

重要提示:

不要隨便使用kill -9的命令,強制殺死進程不是一個好習慣。
我們平時用的kill命令,默認是kill -15, 當我們執行kill後,事實上系統內部的操作是:

  1. 立即停止程序
  2. 釋放相應資源後終止程序
  3. 忽略該信號,繼續執行程序
    在退出前會做一些準備工作,比如釋放資源,清理臨時文件等,做完了這些操作才正式停止,如果在做準備工作的時候遇到了阻礙,應用程序會選擇忽略該終止信號。

而kill -9 有時候會導致數據丟失,尤其是一些web應用,定時任務或者包含長事務的應用中,儘量不要使用kill -9. 工作中很多的服務都需要很長的時間來收尾,比如tomcat容器,dubbo服務,流量引擎等,這些地方儘快不要用 -9.

切記: 保證業務穩定安全是重中之重。

總結:

  1. 殺死不存在的程序會報錯
  2. 使用kill的時候不指定信號,默認會發送信號15, 信號15是終止指定進程, 讓進程在退出之前清理並釋放資源
  3. 使用kill時候,如果加上 -9表示強制終止程序,可能會使數據丟失。

我是高勝寒,一個在教培行業不忘初心的人, 關注我,一起學習,歡迎點贊收藏,我們下篇文章再見!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章