linux kill & jobs
linux kill & jobs
1.獲得pid
方法一 :
$ ps -ef$ ps -aux
方法二 :
pgrep:(pgrep -l 更好)一看到pgrep首先會想到什麼?沒錯,grep!pgrep的p表明了這個命令是專門用於程式查詢的grep。$ pgrep firefox1827看到了什麼?沒錯火狐的PID,接下來又要打字了:$kill -s 9 1827
2.殺掉程式
pkill:
看到pkill想到了什麼?沒錯pgrep和kill!pkill=pgrep+kill。
$pkill -9 firefox
說明:"-9" 即傳送的訊號是9,pkill與kill在這點的差別是:pkill無須 “s”,終止訊號等級直接跟在 “-“ 後面。
killall:
killall和pkill是相似的,不過如果給出的程式名不完整,killall會報錯。pkill或者pgrep只要給出程式名的一部分就可以終止程式。
$killall -9 firefox
格式:kill -l
列出所有訊號名稱(Print a list of signal names. These are found in /usr/include/linux/signal.h)。只有第9種訊號(SIGKILL)才可以無條件終止程式,其他訊號程式都有權利忽略。下面是常用的訊號:
HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 終止
KILL 9 強制終止
CONT 18 繼續(與STOP相反, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
格式:kill -l
顯示指定訊號的數值。
格式:kill -9
格式:kill -KILL
強制殺掉指定程式,無條件終止指定程式。
格式:kill %
格式:kill -9 %
殺掉指定的任務(使用jobs命令可以列出)
格式:kill -QUIT
格式:kill -3
使得程式正常的退出。
3. 任務jobs 掛起,終止
jobs命令用於顯示當前終端關聯的後臺任務情況。
命令後面跟上& 用於將命令在後臺執行。
Ctrl+Z用於將當前正在執行的前臺程式暫停,變成後臺程式。
bg [%n]用於將後臺暫停的程式繼續執行。
fg [%n]用於將後臺執行的程式變成前臺程式。
kill %n用於殺掉指定的任務。
fg、bg、jobs、&、ctrl + z都是跟系統任務有關的,雖然現在基本上不怎麼需要用到這些命令,但學會了也是很實用的
一。& 最經常被用到
這個用在一個命令的最後,可以把這個命令放到後臺執行
二。ctrl + z
可以將一個正在前臺執行的命令放到後臺,並且暫停
三。jobs
檢視當前有多少在後臺執行的命令
四。fg
將後臺中的命令調至前臺繼續執行
如果後臺中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後臺正在執行的命令的序號(不是pid)
五。bg
將一個在後臺暫停的命令,變成繼續執行
如果後臺中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後臺正在執行的命令的序號(不是pid)
下列命令可以用來操縱程式任務:
ps 列出系統中正在執行的程式;
kill 傳送訊號給一個或多個程式(經常用來殺死一個程式);
jobs 列出當前shell環境中已啟動的任務狀態,若未指定jobsid,則顯示所有活動的任務狀態資訊;如果報告了一個任務的終止(即任務的狀態被標記為Terminated),shell 從當前的shell環境已知的列表中刪除任務的程式標識;
bg 將程式搬到後臺執行(Background);
fg 將程式搬到前臺執行(Foreground);
將job轉移到後臺執行
如果你經常在X圖形下工作,你可能有這樣的經歷:通過終端命令執行一個GUI程式,GUI介面出來了,但是你的終端還停留在原地,你不能在shell中繼續執行其他命令了,除非將GUI程式關掉。
為了使程式執行後終端還能繼續接受命令,你可以將程式移到後臺執行,使用如下命令執行程式: #假設要執行xmms
$xmms &
這樣開啟xmms後,終端的提示又回來了。現在xmms在後臺執行著呢;但萬一你執行程式時忘記使用“&”了,又不想重新執行;你可以先使用ctrl+z掛起程式,然後敲入bg命令,這樣程式就在後臺繼續執行了。
概念:當前任務
如果後臺的任務號有2個,[1],[2];如果當第一個後臺任務順利執行完畢,第二個後臺任務還在執行中時,當前任務便會自動變成後臺任務號碼“[2]”的後臺任務。所以可以得出一點,即當前任務是會變動的。當使用者輸入“fg”、“bg”和“stop”等命令時,如果不加任何引號,則所變動的均是當前任務。
察看jobs
使用jobs或ps命令可以察看正在執行的jobs。
jobs命令執行的結果,+表示是一個當前的作業,減號表是是一個當前作業之後的一個作業,jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated,但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的程式標識;也就是說,jobs命令顯示的是當前shell環境中所起的後臺正在執行或者被掛起的任務資訊;
程式的掛起
後臺程式的掛起:
在solaris中通過stop命令執行,通過jobs命令檢視job號(假設為num),然後執行stop %num;
在redhat中,不存在stop命令,可通過執行命令kill -stop PID,將程式掛起;
當要重新執行當前被掛起的任務時,通過bg %num 即可將掛起的job的狀態由stopped改為running,仍在後臺執行;當需要改為在前臺執行時,執行命令fg %num即可;
前臺程式的掛起:
ctrl+z;
程式的終止
後臺程式的終止:
方法一:
通過jobs命令檢視job號(假設為num),然後執行kill %num
方法二:
通過ps命令檢視job的程式號(PID,假設為pid),然後執行kill pid
前臺程式的終止:
ctrl+c
kill的其他作用
kill除了可以終止程式,還能給程式傳送其它訊號,使用kill -l 可以察看kill支援的訊號。
轉自 : http://blog.163.com/a7701@126/blog/static/20821732201276231717/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28859270/viewspace-768976/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- kill oracle jobsOracle
- Linux jobs 命令示例Linux
- Linux 提權-Cron JobsLinux
- linux kill 命令Linux
- 【linux】kill命令模板Linux
- linux Kill多個程式的妙招--案例:Kill(LOCAL=NO)Linux
- 精通 Linux 的 “kill” 命令Linux
- linux命令: ps,grep,killLinux
- Laravel JobsLaravel
- Jobs for Wistronits
- linux之kill命令詳解Linux
- linux 檢視程式 kill程式Linux
- Linux下kill一個程式Linux
- linux下kill命令小結Linux
- jobs 命令示例
- linux 下根據埠kill 程式Linux
- Linux kill,killall和killall5Linux
- linux下批次kill程式的方法Linux
- Linux下Kill多個程式的妙招Linux
- Linux, AIX系統下批量kill程式LinuxAI
- Kubernetes – Jobs
- 菜鳥學Linux命令:bg fg jobs命令 任務管理Linux
- linux kill -9 的記錄,批量殺程式Linux
- Linux下批量Kill多個程式的方法Linux
- Linux的kill命令與訊號控制(轉)Linux
- Disable Oracle Automatic JobsOracle
- Daily Cleaning background JobsAI
- 【Kill】兩條Linux命令徹底殺死OracleLinuxOracle
- [轉載]Linux下批量Kill多個程式(oracle)LinuxOracle
- Kill SessionsSession
- kill sessionSession
- 【kill session】Oracle 徹底 kill session(轉載)SessionOracle
- New 11g Default Jobs
- 如何在 Linux 上使用 kill 和 killall 來管理程式Linux
- linux系列之:告訴他,他根本不懂killLinux
- Linux之ps查詢程式用kill終止命令Linux
- LINUX下kill掉多個類似程式的妙招Linux
- 在linux下oracle kill 使用者程式的方法LinuxOracle