linuxubuntukill指令和killall指令的区别(killall会终止所有与该名字匹配的进程)(代码片段)

Dontla Dontla     2023-01-31     245

关键词:

参考文章1:kill 和killall----杀死进程

参考文章2:如何使用killall和kill命令来停止进程

参考文章3:在 Linux 上使用 kill 和 killall 命令来管理进程 | Linux 中国

killall是一个基于名称终止系统上运行进程的工具。kill则是终止基于进程ID号(PID)的进程。killkillall还可以向进程发送特定的系统信号。

使用killallkill以及ps负责管理和结束被卡住或无响应的流程。在本教程中,在每个示例中将[process name]替换您要终止的进程的名称。

用法

如何使用killall

killall命令采用以下形式:

killall [process name]

killall将终止与指定名称匹配的所有程序。killall发送SIGTERM信号,它终止与指定名称匹配的正在运行的进程。您可以使用以下-s选项指定不同的信号:

killall -s 9 [process name]

这发送SIGKILL信号,您还可以使用以下格式之一指定信号:

killall -KILL [process name]
killall -SIGKILL [process name]
killall -9 [process name]

如何使用kill

kill命令终止其PID指定的各个进程。

命令采用以下形式:

kill [PID]

如果没其他选项,则kill发送SIGTERM到指定的PID并要求应用程序或服务自行关闭。

在一个kill命令中可以指定多个pid和备用系统信号。下面的示例都将SIGKILL信号发送到指定的PID:

kill -s KILL [PID]
kill -KILL [PID]

系统信号

kill命令不会直接终止进程。相反,一个信号被发送到进程,如果进程接收到一个给定的信号,进程将有相应的指令。手册页提供了所有可用信号的进一步参考::

man 7 signal
Standard signals
Linux supports the standard signals listed below. Several signal numbers are architecture-dependent, as indicated in the "Value" column. Where
three values are given, the first one is usually valid for alpha and sparc, the middle one for x86, arm, and most other architectures, and the last
one for mips. (Values for parisc are not shown; see the Linux kernel source for signal numbering on that architecture.) A dash (-) denotes that a
signal is absent on the corresponding architecture.
​
First the signals described in the original POSIX.1-1990 standard.
​
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating-point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no
readers; see pipe(7)
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at terminal
SIGTTIN 21,21,26 Stop Terminal input for background process
SIGTTOU 22,22,27 Stop Terminal output for background process
​
The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored.

简单地列出所有可用的信号,而不包含它们的描述:

kill -l
killall -l
[root@RV1126_RV1109:~]# kill -l
 1) HUP
 2) INT
 3) QUIT
 4) ILL
 5) TRAP
 6) ABRT
 7) BUS
 8) FPE
 9) KILL
10) USR1
11) SEGV
12) USR2
13) PIPE
14) ALRM
15) TERM
16) STKFLT
17) CHLD
18) CONT
19) STOP
20) TSTP
21) TTIN
22) TTOU
23) URG
24) XCPU
25) XFSZ
26) VTALRM
27) PROF
28) WINCH
29) POLL
30) PWR
31) SYS
32) RTMIN
64) RTMAX

如果需要将信号名称转换为信号编号,或将信号编号转换为信号名称,请使用以下示例:

$ kill -l 9
KILL
​
$ kill -l kill
9

查找正在运行的进程

使用像htoptop这样的实用程序来查看进程的实时列表及其对系统资源的消耗。(我的arm-linux没有htop命令!!!)

使用ps命令查看当前正在运行的进程及其pid。下面的示例使用grep过滤当前为字符串mediaserver运行的所有进程列表:(加不加字符串符号好像都可以。。。)

[root@RV1126_RV1109:~]# ps -aux | grep mediaserver
root      690  0.0  0.3   6084  3040 pts/0    S    13:53   0:02 ipc-daemon --no-mediaserver
root      741  8.6 10.0 655072 87580 pts/0    Sl   13:53   4:59 mediaserver -c /oem/usr/share/mediaserver/rv1109/ipc.conf
root      996  0.0  0.0   2056   224 pts/2    S+   14:51   0:00 grep mediaserver
[root@RV1126_RV1109:~]# 

左边第二列中列出的数字是PID,在mediaserver过程中是690。grep进程总是与自己匹配以进行简单的搜索,就像第二个结果一样。

注意
您可以使用命令ps auxf查看所有正在运行的进程的分层树。

获得PID或进程名称后,使用killall或kill终止上述过程。

找到PID的另一个选择是pgrep。

[root@RV1126_RV1109:~]# pgrep mediaserver
741

验证流程终止
将-w选项添加到killall命令,将使killall等待进程终止后退出。考虑下面的命令:

killall -w irssi

这个示例将SIGTERM系统信号发送给一个后台进程,该进程的名称与irssi匹配。killall将等待匹配的进程结束。如果没有进程匹配指定的名称,killall将返回一条错误消息:

$ killall -w irssi
irssi: no process found

但是我的怎么是这样的???

[root@RV1126_RV1109:~]# killall -w mediaserver
killall: bad signal name 'w'
[root@RV1126_RV1109:~]# 
[root@RV1126_RV1109:~]# killall -w irssi
killall: bad signal name 'w'

killall详细解释

介绍 killall 命令
一次终止多个进程有个更简单方法,使用 killall 命令。你或许可以根据名称猜测出,killall 会终止所有与该名字匹配的进程。这意味着我们可以使用此命令来停止所有流氓 Chromium 进程。这很简单:

$ killall /usr/lib64/chromium-browser/chromium-browser
但是要小心使用 killall。该命令能够终止与你所给出名称相匹配的所有进程。这就是为什么我喜欢先使用 ps -ef 命令来检查我正在运行的进程,然后针对要停止的命令的准确路径运行 killall。

你也可以使用 -i 或 --interactive 参数,来让 killkill 在停止每个进程之前提示你。(额我的arm linux没有-i参数。。。)

killall 还支持使用 -o 或 --older-than 参数来查找比特定时间更早的进程。例如,如果你发现了一组已经运行了好几天的恶意进程,这将会很有帮助。又或是,你可以查找比特定时间更晚的进程,例如你最近启动的失控进程。使用 -y 或 --young-than 参数来查找这些进程。

2023-04-03linux中杀死进程kill和killall命令的区别,着重介绍killall(代码片段)

一、Linuxkillall用于杀死一个进程,与kill不同的是它会杀死指定名字的所有进程。kill命令杀死指定进程PID,需要配合ps使用,而killall直接对进程对名字进行操作,更加方便。二、kill的命令格式kill[信号代码... 查看详情

解决方法3-bash:killall:commandnotfound

[[email protected]~]#killallctcss-bash:killall:commandnotfound debian、ubuntu系统下:  apt-get install psmisccentos、rhel系统下:  yum install psmisc Psmisc软件包包含三个帮助管理/proc目录的程序。安装下列程序:fuser,killall,ps... 查看详情

没有killall命令的解决方法

执行killall命令时提示:-bash:killall:commandnotfound没有killall命令的解决方法,执行如下命令安装就行:debian、ubuntu系统下:apt-getinstallpsmisccentos或、rhel系统下:yuminstall-ypsmisc 查看详情

killall简明笔记

根据名称终止进程killall[option] name-list killall将信号发送到一个或多个进程用来终止它。除超级用户外,只有进程的所有者才可以对进程执行killall,超级用户可以终止任何进程 参数name-list 为空格分隔的接收信号的... 查看详情

killall命令

整理中本文出自“赵东伟的博客”博客,请务必保留此出处http://zhaodongwei.blog.51cto.com/4233742/1877715 查看详情

killall命令

我们使用kill命令的时候一般都要先psaux查看一下进程的PID,然后再killPID来杀死进程,而killall则可以直接根据进程名来杀死进程,比如killallnginx、killallmysqld等等[[email protected]src]#killallnginx        查看详情

沙盒 - 不允许 killall 操作

】沙盒-不允许killall操作【英文标题】:Sandbox-killallOperationnotpermitted【发布时间】:2012-05-2923:48:15【问题描述】:我正在编写一个运行以下命令的小型Mac应用程序(在Obj-C中):system("killallFinder");我想看看如果我将应用程序沙盒... 查看详情

killall使用(代码片段)

Linux系统中的killall命令用于杀死指定名字的进程(killprocessesbyname)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要之前使用ps等命令再配合grep来查找进程id,而kill... 查看详情

linux中killkillallkillall5命令区别

linux的kill、killall、killall5命令区别1.killkill命令可以杀死指定PID的进程。也就是说,如果我们要杀死一个我们只知道名称的的进程,我们需要两个步骤:通过使用ps命令,并且配合使用grep命令,找到进程的PID通过kill命令kill-9,杀... 查看详情

关于国产麒麟系统使用killall命令杀死模糊匹配进程失败“未找到该进程”的解决方法(代码片段)

...需要强制杀死对应的子进程软件,发现麒麟系统killall指令无法模糊匹配。    arm-linux上的测试(群友提供)  ubuntu和arn-linux上都是正常的。  解决方法  先列出所有进程,然后匹配关键字的进程列表&#x... 查看详情

kill,killall,pkill,xkill(代码片段)

...ss.$ps-ef|grepfirefox1986?Sl7:22/usr/lib/firefox-3.5.3/firefox$kill-919862.KillallCommand–KillprocessesbynameInsteadofspecifyingaprocessbyitsPID,youcanspecifythenameoftheprocess.Ifmorethanoneprocessrunswiththatname,allofthemwillbekilled.Example:Killallthefirefoxprocesses$killall-9firefox3.PkillCom... 查看详情

linux-网络配置和进程管理(代码片段)

...终止进程kill和killall查看进程数pstree服务Service管理chkconfig指令动态监控进程监控网络状态rpm和yum安装卸载rpm包安装rpm包yum的使用Linux的网络配置Linux自动获取网络配置自动获取网络配置比较简单,但是每次启动Linux后,分... 查看详情

calico 网络对 k3s 中 killall.sh 的依赖

】calico网络对k3s中killall.sh的依赖【英文标题】:caliconetworkdependencyonkillall.shink3s【发布时间】:2021-10-3116:35:09【问题描述】:我有一个k3s集群,它的系统pod应用了calico策略:kube-systempod/calico-node-xxxxkube-systempod/calico-kube-controllers-xxx... 查看详情

linux命令行怎么结束进程

参考技术A1、先找到进程,使用top,会列出每个运行进程的进程号PID和英文名字。2、killPID或者killall进程名,如killall-9chrome 查看详情

运行 k3s-killall.sh 脚本后如何启动 K3s 服务器

】运行k3s-killall.sh脚本后如何启动K3s服务器【英文标题】:HowtostartK3sserverafterrunningk3s-killall.shscript【发布时间】:2021-10-1911:10:13【问题描述】:我正在运行运行以下pod的K3s集群:kube-systempod/calico-node-xxxxkube-systempod/calico-kube-controlle... 查看详情

怎么样结束关闭linux/ubuntu系统中的进程

Linux中杀掉一个进程可以用kill和killall命令,killall命令用命令名字来杀死指定进程,而kill命令则是用进程PID来杀死进程。killall命令,顾名思义就是杀死所有以某个命令启动的所有进程,用killall命令杀死进程的命令是这样的(这... 查看详情

system("killall SpringBoard");不能在 ios4.2.1 中工作?

】system("killallSpringBoard");不能在ios4.2.1中工作?【英文标题】:system("killallSpringBoard");notworkinginios4.2.1?【发布时间】:2010-12-1919:21:12【问题描述】:所以我创建了一个使用命令system("killallSpringBoard");的应用程序;它... 查看详情

关于国产麒麟系统使用killall命令杀死模糊匹配进程失败“未找到该进程”的解决方法(代码片段)

若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/126677352红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、... 查看详情