Linux中的kill命令用于终止指定进程的运行(terminateaprocess),是Linux下进程管理的常用命令。通常,您可以使用Ctrl+C键来终止前台进程。但是,对于后台进程,您必须使用kill命令来终止它。我们需要使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令将进程Kill掉。kill命令通过向进程发送指定的信号来结束相应的进程。默认情况下,使用编号为15的TERM信号。TERM信号将终止所有无法捕获该信号的进程。对于那些能够捕捉到信号的进程,使用编号为9的kill信号强行“杀死”该进程。命令格式kill[参数][进程号命令功能向相应的进程发送指定的信号。不指定模型将发送SIGTERM(15)以终止指定的进程。如果程序无法终止,可以使用“-KILL”参数,它发出的信号是SIGKILL(9),会强行结束进程。使用ps命令或jobs命令查看进程号。root用户会影响用户的进程,非root用户只能影响自己的进程。命令参数-lsignal,如果不加信号的number参数,则使用“-l”参数列出所有信号名称-a处理当前进程时,不限制命令名称与进程号-p指定kill命令只打印相关进程的进程号,不发送任何信号-s指定要发送的信号-u指定用户命令说明kill命令可以有信号号选项,也可以没有。如果没有信号编号,kill命令会发出一个终止信号(15),该信号可以被进程捕获,以便进程在退出前进行清理和释放资源。您还可以使用kill向进程发送特定信号。例如:kill-2123其效果相当于PID为123的进程在前台运行时按Ctrl+C。但是普通用户只能使用不带signal参数或者最多带-9信号的kill命令。kill可以将进程ID号作为参数。使用kill向这些进程发送信号时,您必须是这些进程的所有者。如果你试图撤销一个没有撤销权限的进程或者撤销一个不存在的进程,你会得到一个错误信息。多个进程可以发出信号或终止。当kill成功发送信号后,shell会在屏幕上显示进程终止信息。有时这些信息不会立即显示出来,只有在按下回车键时才会让shell的命令提示符重新出现。需要注意的是,信号会导致进程被强制终止,这往往会产生数据丢失或终端无法恢复正常状态等副作用。发送信号时必须小心,killsignal(9)只能作为最后的手段使用,因为进程无法首先捕获它。要终止所有后台作业,请输入kill0。由于某些在后台运行的命令会启动多个进程,因此跟踪并找到要终止的所有进程的PID可能很麻烦。这时,使用kill0终止当前shell启动的所有进程是一个有效的方法。电视机内定名>kill-l1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL5)SIGTRAP6)SIGABRT7)SIGBUS8)SIGFPE9)SIGKILL10)SIGUSR111)SIGSEGV12)SIGUSR213)SIGPIPE14)SIGPIPE14))SIGTERM16)SIGSTKFLT17)SIGCHLD18)SIGCONT19)SIGSTOP20)SIGTSTP21)SIGTTIN22)SIGTTOU23)SIGURG24)SIGXCPU25)SIGXFSZ26)SIGVTALRM27)SIGPROF28)SIGWINCH29)SIGGPW34)SIGGPW34MIN)SIGGPW34MIN))SIGRTMIN+136)SIGRTMIN+237)SIGRTMIN+338)SIGRTMIN+439)SIGRTMIN+540)SIGRTMIN+641)SIGRTMIN+742)SIGRTMIN+843)SIGRTMIN+944)SIGRTMIN+1045)SIGRTMIN+1146)SIGRTMIN+1247)SIGRTMIN+1348)SIGRTMIN+1449)SIGRTMIN+1550)SIGRTMAX-1451)SIGRTMAX-1352)SIGRTMAX-1253)SIGRTMAX-1154)SIGRTMAX-1055)SIGRTMAX-956)SIGRTMAX-857)SIGRTMAX-758)SIGRTMAX-659)SIGRTMAX-560)SIGRTMAX-461)SIGRTMAX-362)SIGRTMAX-263)SIGRTMAX-164)S只有IGRTMAX的第九个信号(SIGKILL)可以无条件终止进程,其他信号进程有权忽略以下是常用的信号:HUP1终端断开INT2中断(同Ctrl+C)QUIT3退出(同Ctrl+\)TERM15TerminateKILL9强制终止CONT18Continue(与STOP相反,fg/bg命令)STOP19Pause(同Ctrl+Z)获取指定信号的值>kill-lKILL9先用ps来找到进程,然后用kill杀掉Drop>ps-ef|grepjavaroot1693410Feb25?00:18:13java-jardemo.jar//完全杀掉进程>kill-916934强制杀掉java相关的所有进程>kill-9$(ps-ef|grepjava)强制杀掉deploy启动的进程user>kill-udeployinitprocessisunkillable>kill-91init是Linux系统运行中必不可少的程序之一。所谓init进程,是内核启动的用户级进程。内核自启动后(已载入内存,开始运行,并初始化所有设备驱动程序和数据结构等),通过启动一个用户级程序init来完成启动过程。所以,init总是第一个进程(它的进程号总是1)。所有其他进程都是init进程的后代。init进程不能杀!原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门站
