溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux的kill命令怎么使用

發(fā)布時間:2022-01-25 09:53:31 來源:億速云 閱讀:192 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“Linux的kill命令怎么使用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

Linux常用命令kill命令主要用于發(fā)送信號到進(jìn)程。

Linux的kill命令怎么使用

kill

發(fā)送信號到進(jìn)程。

目錄

  • bash內(nèi)建命令

  • GNU coreutils中的命令

內(nèi)建命令

概要
 kill [-s sigspec | -n signum | -sigspec] pid | jobspec ...
 kill -l [sigspec]
主要用途
  • 發(fā)送信號到作業(yè)或進(jìn)程(可以為多個)。

  • 列出信號。

選項
 -s sig    信號名稱。
 -n sig    信號名稱對應(yīng)的數(shù)字。
 -l        列出信號名稱。如果在該選項后提供了數(shù)字那么假設(shè)它是信號名稱對應(yīng)的數(shù)字。
 -L        等價于-l選項。
參數(shù)

pid:進(jìn)程ID

jobspec:作業(yè)標(biāo)識符

返回值

返回狀態(tài)為成功除非給出了非法選項、執(zhí)行出現(xiàn)錯誤。

例子
 [user2@pc] kill -l 9
 KILL
 
 # 列出所有信號名稱:
 [user2@pc] kill -l
  1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
  5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
  9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
 13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT
 17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
 21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU
 25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH
 29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN
 35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4
 39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
 43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6
 59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
 63) SIGRTMAX-1  64) SIGRTMAX
 
 # 下面是常用的信號。
 # 只有第9種信號(SIGKILL)才可以無條件終止進(jìn)程,其他信號進(jìn)程都有權(quán)利忽略。
 
 HUP     1    終端掛斷
 INT     2    中斷(同 Ctrl + C)
 QUIT    3    退出(同 Ctrl + \)
 KILL    9    強(qiáng)制終止
 TERM   15    終止
 CONT   18    繼續(xù)(與STOP相反,fg/bg命令)
 STOP   19    暫停(同 Ctrl + Z)
 # 以下發(fā)送KILL信號的形式等價。當(dāng)然還有更多的等價形式,在此不一一列舉了。
 [user2@pc] kill -s SIGKILL PID
 [user2@pc] kill -s KILL PID
 [user2@pc] kill -n 9 PID
 [user2@pc] kill -9 PID
 
 [user2@pc] sleep 90 &
 [1] 178420
 
 # 終止作業(yè)標(biāo)識符為1的作業(yè)。
 [user2@pc] kill -9 %1
 
 [user2@pc] jobs -l
 [1]+ 178420 KILLED                  ssh 192.168.1.4
 
 [user2@pc] sleep 90 &
 [1] 181357
 
 # 發(fā)送停止信號。
 [user2@pc] kill -s STOP 181357
 
 [user2@pc] jobs -l
 [1]+ 181537 Stopped (signal)        sleep 90
 
 # 發(fā)送繼續(xù)信號。
 [user2@pc] kill -s CONT 181357
 
 [user2@pc] jobs -l
 [1]+ 181537 Running                 sleep 90 &
注意
  1. bash的作業(yè)控制命令包括bg fg kill wait disown suspend。

  2. 該命令是bash內(nèi)建命令,相關(guān)的幫助信息請查看help命令。

外部命令

概要
 kill [-signal|-s signal|-p] [-q value] [-a] [--] pid|name...
 kill -l [number] | -L
主要用途
  • 發(fā)送信號到進(jìn)程(可以為多個)。

  • 列出信號。

選項
 -s, --signal signal    要發(fā)送的信號,可能是信號名稱或信號對應(yīng)的數(shù)字。
 -l, --list [number]    打印信號名稱或轉(zhuǎn)換給定數(shù)字到信號名稱。信號名稱可參考文件(/usr/include/linux/signal.h)。
 -L, --table            和'-l'選項類似,但是輸出信號名稱以及信號對應(yīng)的數(shù)字。
 -a, --all              不要限制“命令名到pid”的轉(zhuǎn)換為具有與當(dāng)前進(jìn)程相同的UID的進(jìn)程。
 -p, --pid              打印目標(biāo)進(jìn)程的PID而不發(fā)送信號。
 --verbose              打印信號以及接收信號的PID。
 -q, --queue value      使用sigqueue(3)而不是kill(2)。參數(shù)value是信號對應(yīng)的數(shù)字。
                            如果接收進(jìn)程已為此信號安裝了處理程序?qū)A_SIGINFO標(biāo)記為sigaction(2),則可以獲取
                            該數(shù)據(jù)通過siginfo_t結(jié)構(gòu)的si_sigval字段。
 --help                 顯示幫助信息并退出。
 --version              顯示版本信息并退出。
參數(shù)

接收信號的進(jìn)程列表可以是PID以及name的混合組成。

PID:每一個PID可以是以下四種情況之一:

狀態(tài)說明
n當(dāng)n大于0時,PID為n的進(jìn)程接收信號。
0當(dāng)前進(jìn)程組中的所有進(jìn)程均接收信號。
-1PID大于1的所有進(jìn)程均接收信號。
-n當(dāng)n大于1時,進(jìn)程組n中的所有進(jìn)程接收信號。當(dāng)給出了一個參數(shù)的形式為“-n”,想要讓它表示一個進(jìn)程組,那么必須首先指定一個信號,或參數(shù)前必須有一個“–”選項,否則它將被視為發(fā)送的信號。

name:使用此名稱調(diào)用的所有進(jìn)程將接收信號。

例子
 > sleep 20 &
 
 # 列出對應(yīng)的PID。
 > kill -p sleep
 23021
返回值
  • 0 成功。

  • 1 失敗。

  • 64 部分成功(當(dāng)指定了多個進(jìn)程時)。

注意
  1. 該命令是GNU coreutils包中的命令,相關(guān)的幫助信息請查看man -s 1 kill或info coreutils 'kill invocation'。

  2. 啟動或關(guān)閉內(nèi)建命令請查看enable命令,關(guān)于同名優(yōu)先級的問題請查看builtin命令的例子部分的相關(guān)討論。

  3. 與kill命令類似的有xkill,pkill,killall等,用于不同的目的和場景。

“Linux的kill命令怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI