成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux下使用killall命令終止進程的8大用法

系統 Linux
Linux 的命令行提供很多命令來殺死進程。比如,你可以向 kill 命傳遞一個PID來殺死進程;pkill 命令使用一個正則表達式作為輸入,所以和該模式匹配的進程都被殺死。

[[263006]]

Linux 的命令行提供很多命令來殺死進程。比如,你可以向 kill 命傳遞一個PID來殺死進程;pkill 命令使用一個正則表達式作為輸入,所以和該模式匹配的進程都被殺死。

但是還有一個命令叫 killall ,默認情況下,它精確地匹配參數名,然后殺死匹配進程。在這篇文章中,我們將討論有關這個命令的實際應用。

默認情況下,killall 命令將向一個/組進程發送一個 SIGTERM 信號,但是,也可以通過參數發送一個指定的信號。

下面我們通過例子詳細介紹 killall 的 8 大用法。

1、基本用法

假如我們 3 個進程在運行,分別是 hello1, hello2, hello3 ,現在我們想殺死 hello1 進程,可以直接使用如下方式: 

  1. killall hello1 

運行的結果如下: 

  1. [alvin@VM_0_16_centos test]$ ps aux | grep hello  
  2. alvin    12061  0.0  0.0   4152   344 pts/0    S    14:41   0:00 ./hello1  
  3. alvin    12074  0.0  0.0   4152   344 pts/0    S    14:41   0:00 ./hello2  
  4. alvin    12084  0.0  0.0   4152   340 pts/0    S    14:41   0:00 ./hello3  
  5. alvin    12089  0.0  0.0 112648   964 pts/0    R+   14:41   0:00 grep --color=auto hello  
  6. [alvin@VM_0_16_centos test]$ killall hello1  
  7. [1]   Terminated              ./hello1  
  8. [alvin@VM_0_16_centos test]$ ps aux | grep hello  
  9. alvin    12074  0.0  0.0   4152   344 pts/0    S    14:41   0:00 ./hello2  
  10. alvin    12084  0.0  0.0   4152   340 pts/0    S    14:41   0:00 ./hello3  
  11. alvin    12170  0.0  0.0 112648   964 pts/0    R+   14:42   0:00 grep --color=auto hello 

可以看到,hello1 進程已經被殺死了。

剩下的 hello2 和 hello3 進程,我們想一次性殺死他們,也就是批量殺死進程,可以如下操作: 

  1. [alvin@VM_0_16_centos test]$ killall hello*  
  2. hello: no process found  
  3. hello1: no process found  
  4. hello.c: no process found  
  5. [2]-  Terminated              ./hello2  
  6. [3]+  Terminated              ./hello3 

如此,以 hello 開頭的進程全部被干掉。

2、終止某個用戶所運行的進程

我們可以殺死以滿足某個正則表達式的一組進程,同樣的,我們也可以殺死某個用戶運行的所有進程。

比如,用戶 harry 現在運行如下幾個進程: 

  1. [alvin@VM_0_16_centos test]$ ps aux | grep harry  
  2. root     13675  0.0  0.2 148236  5584 ?        Ss   14:55   0:00 sshd: harry [priv]  
  3. harry    13677  0.0  0.1 148236  2944 ?        S    14:55   0:00 sshd: harry@pts/1  
  4. root     13678  0.0  0.2 148236  5444 ?        Ss   14:55   0:00 sshd: harry [priv]  
  5. harry    13680  0.0  0.1 148236  2252 ?        S    14:55   0:00 sshd: harry@notty  
  6. harry    13681  0.0  0.1  53228  2168 ?        Ss   14:55   0:00 /usr/libexec/openssh/sftp-server  
  7. harry    13694  0.0  0.1 116436  3252 pts/1    Ss+  14:55   0:00 -bash  
  8. harry    13948  0.0  0.0   4152   344 pts/1    S    14:57   0:00 ./hello1  
  9. harry    13952  0.0  0.0   4152   344 pts/1    S    14:57   0:00 ./hello2  
  10. harry    13959  0.0  0.0   4152   344 pts/1    S    14:57   0:00 ./hello3  
  11. alvin    14005  0.0  0.0 112648   964 pts/0    R+   14:58   0:00 grep --color=auto harry 

我們現在想殺死 harry 所運行的所有進程,可以以如下方式操作: 

  1. killall -u harry 

運行結果如下: 

  1. [alvin@VM_0_16_centos test]$ sudo killall -u harry  
  2. [alvin@VM_0_16_centos test]$ ps aux | grep harry  
  3. alvin    14040  0.0  0.0 112648   964 pts/0    R+   14:58   0:00 grep --color=auto harry 

但是,這個選項要慎用,因為它會把該用戶所有進程,包括終端進程,全部殺死,將導致該用戶直接退出。所以,如果不想挨揍的話不要輕意嘗試這個選項。

3、終于時間的方式終止進程

假如我們現在運行了很多程序,我們只想殺死運行時間超過 5h 的進程,那么可以使用 -o 選項,其中 o 代表 older 如下: 

  1. killall -o 5h 

同樣地,如果你想殺死進行時間小于 4h 的進程,那么可以使用 -y 選項,其中 y 代表 younger ,如下: 

  1. killall -y 4h 

這兩個選項同樣非常粗暴,也會把終端退出,所以先不演示了。

4、忽略大小寫

默認情況下,killall 命令是大小寫敏感的,所以我們如果寫錯大小寫,將無法正確殺死進程。 

  1. [alvin@VM_0_16_centos test]$ killall HELLO1  
  2. TEST1: no process found 

如果我們想忽略大小寫,可以加上 -I (大寫字母 i )選項。 

  1. [alvin@VM_0_16_centos test]$ killall -I HELLO1  
  2. [1]   Terminated              ./hello1 

5、關閉命令執行回顯

默認情況下,killall 會告訴你命令執行情況,但是,我們如果不關心它的執行結果,只想讓它靜默執行,該怎么辦?只需加上 -q 選項即可,其中 q 表示 quite , 如下: 

  1. [alvin@VM_0_16_centos test]$ killall HELLO2  
  2. HELLO2: no process found  
  3. [alvin@VM_0_16_centos test]$ killall -q HELLO2  
  4. [alvin@VM_0_16_centos test]$ 

6、列出所有支持的信號

如前文所述,默認情況下,killall 命令將發送 SIGTERM 信號,那么,安可以發送其它信號嗎?當然是可以的。可以使用 -l 選項查看 killall 所支持的所有信號: 

  1. [alvin@VM_0_16_centos test]$ killall -l  
  2. HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM  
  3. STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS  
  4. UNUSED 

你可以使用 -s 選項(后面跟一個信號名)來向一個進程發送特殊信號。

7、交互式操作

如果你在殺死多個進程時不太放心,擔心把不該殺死的進程給殺死了,那么你可以使用 -i 選項,這樣就可以自由決定哪些進程應該被殺死,哪些進程應該被保留。 

  1. [alvin@VM_0_16_centos test]$ killall -i hello*  
  2. Kill hello2(13825) ? (y/N) y  
  3. Kill hello3(13831) ? (y/N) N  
  4. hello: no process found  
  5. hello1: no process found  
  6. hello3: no process found  
  7. hello.c: no process found  
  8. [2]-  Terminated              ./hello2 

8、等待直到某個進程被終止

當一個信號被發送至某個進程,如果你想確定該進程已經被殺死了才返回執行結果,可以使用 -w 選項,其中 w 代表 wait ,如下: 

  1. [alvin@VM_0_16_centos test]$ killall -w hello1  
  2. [4]+  Terminated              ./hello1 

這里好像看不出什么效果,但實際執行的時候,可以發現執行結果會在一兩秒后出現,而不加 -w 選項的話,執行結果馬上就顯示。 

責任編輯:龐桂玉 來源: Linux學習
相關推薦

2021-03-19 09:30:22

Linuxkill命令 管理進程

2010-05-24 14:57:10

SVN子命令

2009-05-26 12:14:59

Linuxkill終止命令

2020-09-13 09:22:51

Linuxls命令

2024-04-24 14:43:40

Linux命令

2010-06-13 15:13:45

Linux 查看進程

2010-06-04 14:31:59

Linux 查看進程

2020-07-09 08:09:21

Linuxdiff命令

2020-08-16 20:42:52

more命令文件Linux

2010-06-04 15:16:36

Linux 查看進程

2010-06-13 15:17:16

Linux 查看進程

2017-08-15 17:09:31

Linux命令

2021-08-14 22:29:42

Backstab進程安全工具

2010-08-17 10:31:10

DIV布局屬性

2009-12-03 10:07:55

Linuxman命令使用技巧

2014-05-06 10:31:21

KillallLinux命令行

2010-01-22 10:51:54

svn命令linux

2023-07-12 23:41:04

Linuxfind

2009-08-03 12:21:03

linux at命令linux at命令詳定時關機

2017-07-13 12:43:41

Linux命令date
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品视频999 | 亚洲不卡在线观看 | 波多野结衣电影一区 | aaa在线观看 | 国产精品久久久久久久久久久久午夜片 | 在线四虎 | 成人网视频 | 亚洲成人综合社区 | 中文字幕成人免费视频 | 一区二区三区欧美在线观看 | 国产午夜视频 | 午夜精品久久久久久久星辰影院 | 国产激情视频网 | 91精品国产一区二区三区 | 久久爱综合 | 亚洲视频一区在线观看 | 婷婷久久综合 | 夜色www国产精品资源站 | 亚洲欧洲中文 | 欧美日韩一区在线观看 | a久久 | 欧美一区二不卡视频 | 国产精品精品视频一区二区三区 | 亚洲国产成人精品女人久久久 | 亚洲精品在线视频 | 这里只有精品99re | 国产亚洲网站 | 国产精品国产亚洲精品看不卡15 | 99精品免费 | 99看片网| 国产精品久久久久一区二区三区 | 亚洲一区二区不卡在线观看 | av在线一区二区 | 中文字幕免费 | 久久久久91 | 一区二区视屏 | 成人免费黄色片 | 男人天堂网址 | 狠狠草视频 | av网站免费看 | 久久久久国产精品一区二区 |