新聞中心
Linux作為一種面向服務(wù)器端的操作系統(tǒng),其具有強大的穩(wěn)定性和靈活性,被廣泛應(yīng)用于互聯(lián)網(wǎng)領(lǐng)域。在Linux系統(tǒng)中,我們通常會遇到需要停止正在運行的任務(wù)的情況,本文將詳細講解Linux如何停止正在運行的任務(wù)。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的鎮(zhèn)巴網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
一、使用kill命令停止任務(wù)
kill命令是一個Linux系統(tǒng)中非常常用的命令,它可以用來終止運行中的進程或任務(wù)。如果我們需要停止一個任務(wù),我們可以先使用ps命令查找任務(wù)的進程號(PID),然后再使用kill命令殺掉進程。
命令格式如下:
“`
kill PID
“`
其中,PID指的是任務(wù)的進程號。例如,我們想要停止進程號為1234的任務(wù),我們可以使用以下命令:
“`
kill 1234
“`
執(zhí)行上述命令后,就可以停止進程號為1234的任務(wù)。
二、使用killall命令停止任務(wù)
如果我們不知道一個任務(wù)的進程號,或者同時需要停止多個同名的任務(wù),我們可以使用killall命令。killall命令可以根據(jù)進程名終止所有同名進程,非常方便。
命令格式如下:
“`
killall 進程名
“`
例如,我們想要停止名為nginx的所有進程,我們可以使用以下命令:
“`
killall nginx
“`
執(zhí)行上述命令后,就可以停止所有名為nginx的進程。
三、使用pkill命令停止任務(wù)
pkill命令與killall命令類似,它可以根據(jù)進程名或者其他條件來終止進程。
命令格式如下:
“`
pkill 參數(shù) 進程名
“`
例如,我們想要停止名為nginx的進程,可以使用以下命令:
“`
pkill nginx
“`
如果要使用其他條件來停止進程,例如根據(jù)進程所屬的用戶來停止進程,可以使用以下命令:
“`
pkill -u 用戶名
“`
以上命令將停止屬于用戶名的所有進程。
四、使用kill命令強制停止任務(wù)
有時候,我們會遇到無法通過kill、killall或pkill命令來停止進程的情況。這時候,我們可以使用kill命令的-f參數(shù)來強制停止進程。
命令格式如下:
“`
kill -f PID
“`
例如,我們想要強制停止進程號為1234的任務(wù),我們可以使用以下命令:
“`
kill -f 1234
“`
這將強制終止進程號為1234的任務(wù)。
Linux系統(tǒng)中停止正在運行的任務(wù)的方法有很多種,其中比較常用的有kill、killall、pkill等命令。我們可以根據(jù)不同的需要來選擇使用不同的命令。如果無法停止任務(wù),我們可以使用kill命令的-f參數(shù)進行強制停止。無論使用哪種方法,我們都應(yīng)該謹慎操作,避免誤刪或誤殺重要任務(wù)。
相關(guān)問題拓展閱讀:
- Linux里面殺掉進程命令是什么?
Linux里面殺掉進程命令是什么?
Linux 操作系統(tǒng)帶有一個kill 命令來終止進程。該命令可以繼續(xù)運行服務(wù)器,而無需在重大更改/更新后重新啟動。
Kill命令向當(dāng)前正在運行的進程發(fā)送一個信號,一個指定的信號。kill 命令可以通過多種方式直接執(zhí)行或從 shell 腳本執(zhí)行。
使用/usr/bin中的kill命令為你提供了一些額外的功能,可以使用pkill按進程名稱殺死進程。本文惠主機www.idccoupon.com簡單來介紹下。
Kill命令用法
kill 命令的常用語法是:
# kill PID(s
對于kill 命令,信號名稱可汪租以是:
Signal NameSignal ValueBehaviourSIGHUPHangup
SIGKILLKill Signal
SIGTERMTerminate
從上面的行為可以清楚地看出,SIGTERM是殺死進程的默認和最安全的方法。SIGHUP是一種比SIGTERM更不安全的終止進程的方法。SIGKILL是上述三種方法中最不安全的一種,即殺死一個進程而終止一個進程而不保存。
為了殺死一個進程,我們需要知道一個進程的進程 ID。進程是程序的一個實例。每次程序啟動時,都會自動為該進程生成一個唯一的PID 。
Linux中的每個進程 都有一手陵賣個pid。Linux 系統(tǒng)啟動時啟動的之一個進程是-init 進程,因此在大多數(shù)情況下,它被分配了一個值“ 1 ”。
init是主進程,不能這樣被殺死,這樣可以保證主進程不會被意外殺死。Init決定并允許自己被殺死,其中 kill 只是一個關(guān)閉請求。
列出所有正在運行的 Linux 進程
要了解所有進程及其分配的pid,請運行以下ps 命令。
#ps -A
樣本輸出如下:
PID TTYTIME CMD
1 ?:00:01 init
2 ?:00:00 kthreadd
3 ?:00:00 migration/0
4 ?:00:00 ksoftirqd/0
5 ?:00:00 migration/0
6 ?:00:00 watchdog/0
7 ?:00:01 events/0
8 ?:00:00 cgroup
9 ?:00:00 khelper
10 ?:00:00 netns
11 ?:00:00 async/mgr
12 ?:00:00 pm
13 ?:00:00 sync_supers
14 ?:00:00 bdi-default
15 ?:00:00 kintegrityd/0
16 ?:00:00 kblockd/0
17 ?:00:00 kacpid
18 ?:00:00 kacpi_notify
19 ?:00:00 kacpi_hotplug
20 ?畢逗00:00:00 ata/0
21 ?:00:00 ata_aux
22 ?:00:00 ksuspend_ud
如何使用語法自定義上述輸出為 ‘ pidof process ‘。
# pidof mysqld
樣本輸出:
1684
當(dāng)然,實現(xiàn)上述目標(biāo)的另一種方法是遵循以下語法。
# ps aux | grep mysqld
樣本輸出如下:
root.0 0. ?S 09:49 0:00
/bin/sh /usr/bin/mysqld_safe –datadir=/var/lib/mysql
–socket=/var/lib/mysql/mysql.sock –pid-file=/var/run/mysqld/mysqld.pid
–basedir=/usr –user=mysql
mysql.1 0. ?Sl 09:49 1:09
/usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql
–log-error=/var/log/mysqld.log –pid-file=/var/run/mysqld/mysqld.pid
–socket=/var/lib/mysql/mysql.sock
root.0 0. pts/0 S+ 21:39
0:00 grep mysqld
如何在Linux中殺死一個進程
接下來在繼續(xù)執(zhí)行kill 命令之前,需要注意一些要點:
用戶可以殺死他的所有進程。
一個用戶不能殺死另一個用戶的進程。
用戶不能殺死系統(tǒng)正在使用的進程。
root 用戶可以殺死系統(tǒng)級進程和任何用戶的進程。
執(zhí)行相同功能的另一種方法是執(zhí)行“ pgrep ”命令。
# pgrep mysql
樣本輸出如下:
3139
要殺死上述進程PID,請使用 kill 命令,如圖所示。
kill
上面的命令將殺死pid = 3139的進程,其中PID是進程的數(shù)值。
執(zhí)行相同功能的另一種方法可以重寫為。
# kill -SIGTERM 3139
同樣,“ kill -9 PID ”類似于“ kill -SIGKILL PID ”,反之亦然。
如何在 Linux 中使用進程名稱殺死一個進程
你必須知道進程名稱,在殺死和輸入錯誤的進程名稱之前可能會搞砸。
# pkill mysqld
一次殺死多個進程。
# kill PID1 PID2 PID3
或者
# kill -9 PID1 PID2 PID3
或者
# kill -SIGKILL PID1 PID2 PID3
如果一個進程有太多實例和許多子進程,我們有一個命令 ‘ killall ‘ 或pkill。這兩個是該系列中唯一的命令,它以進程名稱作為參數(shù)代替進程號。
句法:
# killall Process Name
或者
# pkill Process Name
要殺死所有mysql 實例以及子進程,請使用以下命令。
# killall mysqld
或者
# pkill mysqld
當(dāng)然,你始終可以使用以下任何命令驗證進程的狀態(tài)是否正在運行。
# service mysql status
或者
# systemctl status mysql
# pgrep mysql
# ps -aux | grep mysql
方法一: Terminal終端輸入: gnome-system-monitor,就可以打開system monitor
如圖:
然后找到相應(yīng)進程,右擊選擇kill process就可以了
方法二: 通過kill 進程id的方式可以實現(xiàn),
首先需要知道進程id, 例如,想要殺死firefox的進程,通過 ps -ef|grep firefox,可以查到firefox的進程id:
然后通過 kill 3781 就可以關(guān)閉進程了.
補充: 1. kill -9 來強制終止退出, 例如: kill
2.特殊用法:
kill -STOP
發(fā)送SIGSTOP (17,19,23)停止一個進程,而并不消段巧滅這個進程。
kill -CONT
發(fā)送SIGCONT (19,18,25)重新開始一個停止的進程。
kill -KILL
發(fā)送SIGKILL (9)強迫進程立即停止,并且不實施清理操作。
kill -9 -1
終止你擁有的全部進程。
方法三: killall 通過程序的名字,來殺死進程
例如: killall firefox
注意: 該命令可以使用 -9 參數(shù)來強制運畢殺死進程, killall -9 firefox
方法四: pkill 通過程序的名字, 直接殺死所有進程
例如: pkill firefox
方法五: 通過xkill 可以殺死圖形程序應(yīng)用, 例如firefox崩潰無響應(yīng),可以使用該命令.
例如: 用法xkill , 會出現(xiàn)一個白色的x, 然后用鼠標(biāo)單擊想要殺死的應(yīng)用,如圖
以下內(nèi)容引用自:
◆編者注:
KILLALL(Section: User (1)/Updated: 1999年9月7日)
———————————————–
NAME (名稱)
killall – 以名字方式來殺死進程
SYNOPSIS (總覽)
killall name …
killall -l
killall -V
DESCRIPTION (描述)
killall 發(fā)送一條信號給所有運行任意指定命令的進程. 如果沒有指定信號名, 則發(fā)送SIGTERM.。
信號可以以名字 (如 -HUP ) 或者數(shù)字 (如 -1 ) 的方式指定. 信號 0 (檢查進程是否存在)只能以數(shù)字方式指定。
如果命令名包括
斜杠
(/), 那么執(zhí)行該特定文件的進程將被殺掉, 這與進程名無關(guān)。
如果對于所列命令無進程可殺, 那么 killall 會返回非零值. 如果對于每條命令至少殺死了一個進程, killall 返回 0。Killall 進程決不會殺死自己 (但是可以殺死其它 killall 進程)。
OPTIONS (選項)
-e
對 于很長的名字, 要求準(zhǔn)確匹配. 如果一個命令名長于 15 個字符, 則可能不能用整個名字 (溢出了). 在這種情況下, killall 會殺死所有匹配名字前 15 個字符的所有進程. 有了 -e 選項,這樣的記錄將忽略. 如果同時指定了 -v 選項, killall 會針對每個忽略的記錄打印一條消息。
-g
殺死屬于該進程組的進程. kill 信號給每個組旁燃芹只發(fā)送一次, 即使同一進程組中包含多個進程。
-i
交互方式,在殺死進程之前征求確認信息。
-l
列出所有已知的信號名。
-q
如果沒有進程殺死, 不會提出抱怨。
-v
報告信號是否成功發(fā)送。
-V
顯示版本信息。
-w
等待所有殺的進程死去. killall 會每秒檢查一次是否任何被殺的進程仍然存在, 僅當(dāng)都死光后才返回. 注意: 如果信號被忽略或沒有起作用, 或者進程停留在僵尸狀態(tài), killall 可能會永久等待。
FILES(相關(guān)文件)
/proc proc
文件系統(tǒng)
的存在位置。
KNOWN bugS (已知 BUGS)
以文件方式殺死只對那些在執(zhí)行時一直打開的
可執(zhí)行文件
起作用, 也即, 混雜的可執(zhí)行文件不能夠通過這種方式殺死。
要警告的是輸入 killall name 可能不會在非 Linux 系統(tǒng)上產(chǎn)生預(yù)期的效果, 特別是特權(quán)用戶執(zhí)行時要小心。
在兩次掃描的間隙, 如果進程消失了而被代之以一個有同樣 PID 的新進程, killall -w 偵測不到。
來源:
下面來了解相關(guān)命令:
一、查看進程的命令 有ps、pstree、pgrep等:
1、ps
顯示進程信息,參數(shù)可省略
-aux 以BSD風(fēng)格顯示進程 常用
-efH 以System V風(fēng)格顯示進程
-e , -A 顯示所有進程
a顯示終端上所有用戶的進程
x顯示無終端進程
u 顯示詳細信息
f樹狀顯示
w 完整顯示信息
l 顯示長列表
在終端中執(zhí)行ps aux,
各列輸出字段的含義:
USER進程所有者
PID進程ID
PPID父進程
%CPUCPU占用率
%MEM 內(nèi)存占用率
NI進程
優(yōu)先級
。數(shù)值越大,占用CPU時間越少
VSZ進程虛擬大小
RSS頁面文件占用
TTY終端ID
STAT進程狀態(tài)
+—D 不可中斷 Uninterruptible sleep (usually IO)
+—R 正在運行,或在隊列中的進程
+—S 處于休眠狀態(tài)
+—T 停止或被追蹤
+—Z 僵尸進程
+—W 進入內(nèi)存交換(從內(nèi)核2.6開始無效)
+—X 死掉的進程
+
顯示進程的PID
-l 顯示進程名和進程PID
-o 進程起始ID
-n 進程終止ID
二、結(jié)束進程的命令 有kill、pkill、killall、xkill等:
kill
根據(jù)PID向進程發(fā)送信號,常用來結(jié)束進程,默認信號為 -9
信號代碼,可取值如下:
-l
信號數(shù)字
> 顯示、翻譯信號代碼
-9 , -KILL 發(fā)送 kill 信號退出
-6 , -ABRT 發(fā)送 abort 信號退出
-15 , -TERM 發(fā)送 Termination 信號
-1 , -HUP 掛起
-2 , -INT 從鍵盤中斷,相當(dāng)于 Ctrl+c
-3 , -QUIT 從鍵盤退出,相當(dāng)于 Ctrl+d
-4 , -ILL 非法指令
-11 , -SEGV 內(nèi)存錯誤
-13 , -PIPE 破壞管道
-14 , -ALRM
-STOP 停止進程,但不結(jié)束
-CONT 繼續(xù)運行已停止的進程
-9 -1 結(jié)束當(dāng)前用戶的所有進程
pkill
結(jié)束進程族。如果結(jié)束單個進程,請用 kill
killall
killall和pkill 應(yīng)用方法差不多,也是直接殺死運行中的程序;如果您想殺掉單個進程,請用kill 來殺掉。
xkill
在圖形界面中點殺進程。
當(dāng)xkill運行時鼠標(biāo)指針變?yōu)轺俭t圖案,哪個圖形程序崩潰一點就OK了。如果您想終止xkill ,就按右鍵取消。
比如當(dāng)firefox 出現(xiàn)崩潰不能退出時,點鼠標(biāo)就能殺死firefox 。
xkill 調(diào)用方法:
# xkill
來源:
linux中pkill的簡單用法
pkill 和killall 應(yīng)用方法差不多,也是直接殺死運行中的程序;如果您想殺掉單個進程,請用kill 來殺掉。
必要參數(shù)
-f 顯示完整程序
-l 顯示源代碼
-n 顯示新程序
-o 顯示舊程序
-v 與條件不符合的程序
-x 與條件符合的程序
選擇參數(shù)
-p 列出父進程為用戶指定進程的進程信息
-t 指定終端下的所有程序
-u 指定用戶的程序
應(yīng)用方法:
#pkill 正在運行的程序名
舉例:
Java代碼
# pgrep -l gaim
2979 gaim
# pkill gaim
也就是說:
kill 對應(yīng)的是 PID
pkill 對應(yīng)的是COMMAND
例如在Ubuntu中強制結(jié)束一個已成僵尸的名稱為:firefox,PID為:1603的進程,可以如下操作:
方法一:
?。?)ctrl+alt+t,調(diào)出終端,輸入 top,然后就可以看到現(xiàn)在系統(tǒng)的進程,是按占用資源從多到少排列的。
找到要關(guān)掉的進程,記下該進程之一列的數(shù)字編號(假設(shè)是xx),然后輸入q,退回終端。
(2)輸入:sudo kill xx(對應(yīng)剛才的編號)。
方法二:
ctrl+alt+t,調(diào)出終端,輸入:sudo pkill firefox
范例1: 殺死指定進程
Java代碼
root@snail-hnlinux:~# ps -A //顯示所有進程
PID TTY TIME CMD
1 ? 00:00:03 init
2 ? 00:00:00 kthreadd
3 ? 00:00:00 migration/0
4 ? 00:00:00 ksoftirqd/0
5 ? 00:00:00 watchdog/0
……忽略部分
28382 ? 00:00:00 gvfsd-http
28391 ? 00:07:07 software-center
30467 ? 00:00:31 designer-qt4
30487 ? 00:00:06 gnome-terminal
30488 ? 00:00:00 gnome-pty-helpe
30489 pts/0 00:00:00 bash
30670 ? 00:00:00 debconf-communi
30749 pts/0 00:00:17 gedit
31155 ? 00:00:00 dhclient
31325 ? 00:00:01 sshd
31327 ? 00:00:00 sshd
31400 pts/1 00:00:00 bash
31485 pts/2 00:00:00 bash
31653 ? 00:00:00 aptd
31658 pts/1 00:00:00 ps
root@snail-hnlinux:~# pidof sshd //查看與sshd相關(guān)進程
95
root@snail-hnlinux:~# pkill -9 sshd //殺死指定進程
范例2:殺死同義終端下的進程
Java代碼
root@snail-hnlinux:~# pkill -t tty1 //殺死終端1下的所有進程
范例3: 殺死指定用戶進程
Java代碼
root@snail-hnlinux:~# pkill -u hnlinux
范例4:反向選擇
Java代碼
root@snail-hnlinux:~# pkill -vu hnlinux //殺死不屬于hnlinux用戶的所有進程
————————————————
版權(quán)聲明:本文為CSDN博主「MrCoderr」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:
killall -9 進程名
或kill -9 進程纖虛pid
linux將stop任務(wù)停掉的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux將stop任務(wù)停掉,Linux如何停止正在運行的任務(wù)?,Linux里面殺掉進程命令是什么?的信息別忘了在本站進行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享名稱:Linux如何停止正在運行的任務(wù)?(linux將stop任務(wù)停掉)
文章鏈接:http://www.5511xx.com/article/djghhse.html


咨詢
建站咨詢
