Linux系统结束进程多种方法集合?

2021-02-27    分类: 网站建设

1. 前言

我们经常在Linux里使用kill命令来结束某后台进程。但kill命令实际上是向进程发送信号,并且有多种信号。终止运行一个程序只是其中一个信号而已。kill是根据进程号发送信号的,而另一个工具killall是根据进程名称发送信号的。

2. 查看kill支持的信号

[root@zcwyou ~]# 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


linux查看kill选项

3. 结束进程

普通用户只能使用不带signal参数的kill命令

一般情况下,最多使用-9信号。即强制结束某个进程。

比如强制结束进程号为123的进程。

先确认进程号:

[root@zcwyou ~]# top

linux查看进程号

然后根据进程号强制结束:

[root@zcwyou ~]# kill -9 123

默认情况,kill使用信号15结束进程,并且是安全的。而信号 9 则是处理异常进程的,请勿滥用

4. kill其它常用信号

代号名称内容1SIGHUP启动被终止的程序,可让该进程重新读取自己的配置文件,类似重新启动。2SIGINT相当于用键盘输入 [ctrl]-c 来中断一个程序的进行。9SIGKILL代表强制中断一个程序的进行,如果该程序进行到一半,那么尚未完成的部分可能会有“半产品”产生,类似 vim会有 .filename.swp 保留下来。15SIGTERM以正常的方式来终止该程序。由于是正常的终止,所以后续的动作会将他完成。不过,如果该程序已经发生问题,就是无法使用正常的方法终止时,输入这个 signal 也是没有用的。19SIGSTOP相当于用键盘输入 [ctrl]-z 来暂停一个程序的进行。

5. 杀死用户user1的所有进程

[root@zcwyou ~]# kill -9 $(ps -ef | grep user1)

或者

[root@zcwyou ~]# kill -u user1

6. 另一个工具killall命令,根据进程名称发送信号,而不是进程号

以CentOS7.5为例,默认情况并没有安装killall命令。

运行以下命令安装软件:

[root@zcwyou ~]# yum -y install psmisc

linux安装killall命令

先查看正在运行的进程

[root@zcwyou ~]# ps -ef 

结束一个名为abc的进程,默认情况下使用SIGTERM命令。

[root@zcwyou ~]# killall abc

查看killall支持的信号

[root@zcwyou ~]# killall -l

HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS UNUSED


linux结束进程命令killall支持的信号

注意:假如进程的名字的长度小于等于15,默认情况下就会以完整名称匹配。

7. 还有一个pkill命令,也是根据进程名称发送信号,类似于killall

pkill选项

-o:仅向找到的最小(起始)进程号发送信号;

-n:仅向找到的大(结束)进程号发送信号;

-P:指定父进程号发送信号;

-g:指定进程组;

-t:指定开启进程的终端。

例子:

结束进程abc

pkill abc

以CentOS7.5为例,默认情况下,系统并没有集成pkill命令。而是要自行安装。

[root@zcwyou ~]# yum -y install procps-ng

Linux安装pkill工具结束进程

8. 总结

Linux下结束进程的工具有很多,这里仅仅了解一些常用的命令。

文章题目:Linux系统结束进程多种方法集合?
标题来源:https://www.cdcxhl.com/news/103229.html

成都网站建设公司_创新互联,为您提供用户体验网站排名搜索引擎优化企业网站制作软件开发品牌网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设