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

五個你可能不了解的Killall命令的實際應用

系統 Linux
Killall命令可以用來給一個特定的進程發送一個信號。這個信號默認情況下是SIGTERM,但也可以由killall命令使用參數來指定其它信號。現在讓我們通過一些實際的例子來看看這個命令的實際用法。

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

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

 

[[112518]]

Linux 的 killall 命令

Killall命令可以用來給一個特定的進程發送一個信號。這個信號默認情況下是SIGTERM,但也可以由killall命令使用參數來指定其它信號。

現在讓我們通過一些實際的例子來看看這個命令的實際用法。

1. 基本示例

在這個例子中,我們將使用killall來殺死特定進程。假如,有兩個開頭字符相同的進程:

  1. $ ps -aef | grep “test” 
  2. himanshu 3969 2811 0 14:14 pts/0 00:00:00 ./test 
  3. himanshu 3970 2811 0 14:14 pts/0 00:00:00 ./test_again 

如何殺死“test_again”進程呢?

  1. $ killall test_again 
  2. [2]+ Terminated ./test_again 

如你所見,killall命令終止了“test_again”進程。你可以通過ps命令來確認這個事實:

  1. $ ps -aef | grep “test” 
  2. himanshu 3969 2811 0 14:14 pts/0 00:00:00 ./test 

你可以觀察到“test_again”沒有被顯示出來,因為它已經被殺死了。

2. 使用 -I 選項忽略大小寫

默認情況下,killall命令是大小寫敏感的。例如:

  1. $ ps -aef | grep “test” 
  2. himanshu 4177 3161 0 14:54 pts/3 00:00:00 ./test 
  3. himanshu 4178 3161 0 14:54 pts/3 00:00:00 ./test_again 
  4. himanshu 4180 3161 0 14:54 pts/3 00:00:00 grep --color=auto test 
  5. $ killall TEST 
  6. TEST: no process found 

你可以看到,killall命令找不到叫做“TEST”的進程,但是“test”進程是確確實實的在運行的。

來讓killall命令忽略大小寫,可以使用-I選項(大寫i)。例如:

  1. $ killall -I TEST 
  2. [1]- Terminated ./test 

你可以觀察到,現在你成功的終止了“test”進程。

3. 使用 -i 選項交互式的終止進程

killall命令可以用來終止多個進程。

  1. $ killall test test_again 
  2. [2]- Terminated ./test_again 
  3. [3]+ Terminated ./test 

但是,如果你想要killall交互式地來終止進程,你可以使用-i選項。

這里是例子:

  1. $ killall -i test test_again 
  2. Kill test(4201) ? (y/N) y 
  3. Kill test_again(4202) ? (y/N) y 
  4. [1]- Terminated ./test 
  5. [2]+ Terminated ./test_again 

你可以看到,用這種方式,在同時終止多個進程時,用戶可以控制是否終止某一個進程。

4. 使用 -q 選項關閉命令執行回顯

有些時候,當killall找不到指定的進程時,它就會像下面這樣輸出錯誤信息。

  1. $ killall TEST 
  2. TEST: no process found 

但是,當你想要killall執行地安安靜靜的話,你就可以使用-q選項:

  1. $ killall -q TEST 

如你所見,-q選項被使用之后,killall命令的輸出信息就被抑制了。

5. 使用-l選項列出所有支持的信號(signal)

如之前描述的一樣,killall向進程發送信號。

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

想要知道所有可以發送的信號,可以使用-l選項(小寫L)來獲取:

  1. $ 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 

killall支持上面的所有信號。

看著這些信號的名字,可能你心里就會嘀咕:這些信號都是干什么的?

譯者注:使用下面的命令來獲取所有信號的說明:

  1. $ man 7 signal 

我需要和大家討論一件事情

killall命令的man說:假如進程的名字的長度小于等于15,默認情況下就會以完整名稱匹配。

比如,假設有兩個名字很長的進程:

  1. $ ps -aef | grep “test” 
  2. himanshu 4021 3161 0 14:27 pts/3 00:00:00 ./test_abcdefghij 
  3. himanshu 4035 3161 0 14:27 pts/3 00:00:00 ./test_abcdefgh 

第一個進程的名字有15個字符。現在,讓我們試著使用killall殺死這個進程:

  1. $ killall test_abcdefghij 
  2. [1]- Terminated ./test_abcdefghij 

如你所見,killall命令成功殺死了這個進程。

假如,兩個進程的名字都超過15個字符,根據man,killall將把兩個進程全部殺死。比如:

  1. $ ps -aef | grep “test” 
  2. himanshu 4114 3161 0 14:40 pts/3 00:00:00 ./test_abcdefghijklmnopqrstuvwx 
  3. himanshu 4141 3161 0 14:46 pts/3 00:00:00 ./test_abcdefghijklmnopqrstuvwxyz 
  4. himanshu 4143 3161 0 14:46 pts/3 00:00:00 grep --color=auto test 

你可以觀察到,兩個進程的名字都超過15個字符?,F在,當我使用killall試著殺死第二個進程時:

  1. $ killall test_abcdefghijklmnopqrstuvwxyz 
  2. [6]+ Terminated ./test_abcdefghijklmnopqrstuvwxyz 

它只殺死了指定的進程,另一個則沒有被殺死。

  1. $ ps -aef | grep “test” 
  2. himanshu 4114 3161 0 14:40 pts/3 00:00:00 ./test_abcdefghijklmnopqrstuvwx 
  3. himanshu 4146 3161 0 14:47 pts/3 00:00:00 grep --color=auto test 

我不太確定,是我進行的嘗試中有不對的地方,還是這是killall的一個bug。假如你在評論中寫上你的觀點,我會非常感激。

順便說一下,這是我機器上killall命令的版本信息:

  1. $ killall --version 
  2. killall (PSmisc) 22.20 
  3. Copyright (C) 1993-2012 Werner Almesberger and Craig Small 
  4. PSmisc comes with ABSOLUTELY NO WARRANTY. 
  5. This is free software, and you are welcome to redistribute it under 
  6. the terms of the GNU General Public License. 
  7. For more information about these matters, see the files named COPYING. 

via: http://linoxide.com/linux-command/linux-killall-my-options/

譯者:intermerlin 校對:wxy

責任編輯:黃丹 來源: linux.cn
相關推薦

2019-04-03 09:10:35

Rediskey-value數據庫

2015-06-05 09:52:41

公有云風險成本

2023-02-16 07:38:38

非機械鍵電路薄膜,

2011-03-29 15:44:41

對日軟件外包

2024-01-15 13:18:11

數據管理CIO

2021-10-20 15:46:25

區塊鏈元宇宙金融

2019-11-21 15:08:13

DevOps云計算管理

2010-08-19 10:12:34

路由器標準

2021-07-12 07:01:39

AST前端abstract sy

2018-07-16 09:00:32

LinuxBash數組

2017-03-13 17:25:00

移動支付技術支撐易寶

2013-11-11 10:07:43

靜態路由配置

2009-09-04 11:06:06

Linux桌面Linux操作系統linux

2023-10-09 14:28:14

AIGC模型WOT2023

2022-04-30 19:22:35

Python編程語言

2019-05-14 14:51:40

Java語法糖用法

2018-04-16 23:14:39

SD-WANSDN網絡

2023-11-29 17:07:18

2019-03-22 08:00:01

Git命令GitHub

2018-11-07 10:18:33

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜私人影院 | 欧美日韩中 | 日韩免费视频一区二区 | 一区二区三区四区在线视频 | 久久99精品久久久久久噜噜 | 午夜影院在线观看 | 国产黄色电影 | 欧美激情一区二区 | 日韩欧美在线一区 | 国产视频中文字幕在线观看 | 中文字幕av亚洲精品一部二部 | 亚洲一区二区不卡在线观看 | 日韩成人在线网址 | 国产黄色在线观看 | 日韩在线免费视频 | 视频第一区 | 亚洲激情综合 | 日本久久久影视 | 91在线电影 | 第一区在线观看免费国语入口 | 性欧美精品一区二区三区在线播放 | 国产农村妇女毛片精品久久麻豆 | 一色桃子av一区二区 | www狠狠干| 福利视频二区 | 国产91在线 | 欧美 | 天天干天天玩天天操 | av首页在线| 99re6热在线精品视频播放 | 黄色大片在线视频 | 69av片| 国产精品久久国产精品久久 | 午夜久久久久久久久久一区二区 | www.三级 | 国产精品天堂 | 久综合| 欧美理论在线观看 | 一级片免费观看 | 中文字幕成人av | 免费观看一级黄色录像 | 97国产在线视频 |