在Linux中如何通过PID结束进程

时间:2019-11-20 08:53:51  来源:igfitidea点击:

如何使用Linux命令行终止进程?
在Linux操作系统中如何使用PID结束进程?
如何强制终止Linux进程?

Linux PID?

PID是process identification number(进程标识号)的首字母缩写。

在Linux操作系统上创建进程时,会自动分配给进程一个PID给。
每个进程都有唯一的PID。
systemd使用的PID号为1(在较旧的Linux发行版中为init)。
init或systemd始终是Linux操作系统上的第一个进程,并且是所有其他进程的父进程。

常见Linux TERM信号列表

Linux操作系统支持以下列出的标准终止信号:

  • SIGHUP(1)在控制终端或控制进程终止时检测到挂断。使用SIGHUP来"重新加载配置文件并打开/关闭日志"文件。
  • SIGKILL(9)杀死信号使用SIGKILL作为终止进程的"最后手段"。它不会保存数据或清除进程。
  • SIGTERM(15)终止信号。这是杀死进程的"默认和最安全的方法"。

kill和killall命令支持60多个信号。
但是,大多数用户只需要使用信号9或15。

查看完整的信号列表:

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中如何获取进程PID

需要PID才能使用kill命令或killall命令或pkill命令来终止进程。

如何找到进程和PID?

要查找firefox/chrome或httpd进程的PID,可以使用以下pidof命令:

pidof firefox
pidof chrome
pidof httpd

或者使用ps命令

ps aux | grep httpd
ps aux | grep firefox
ps aux | grep nginx

还可以使用pgrep命令,根据名称查找进程:

pgrep httpd
pgrep firefox
pgrep nginx

在Linux中使用PID终止进程

kill命令或killall命令的语法如下:

kill -[signal] PID
kill -15 PID
kill -9 PID
kill -SIGTERM PID
kill [options] -SIGTERM PID
killall -15 app_name
killall -9 process_name_such_as_firefox

获取Firefox进程的PID

执行:

pidof firefox

或者

ps aux | grep firefox

或者

pgrep firefox

在Linux中使用PID终止进程

执行:

kill -15 12355

如果以上操作失败,执行下面命令强制杀死进程

kill -9 12355

检查确认

运行以下命令,检查进程是否已经消失(被终止了):

ps aux | grep 12355
pidof firefox
pgrep firefox

killall命令

killall命令用于根据名称杀死所有匹配的进程。

例如:

killall -15 chrome
killall -9 nginx

pkill命令

pkill命令可以根据名称查找进程并将其杀死。
语法为:

pkill -TERM process
pkill -15 firefox
pkill -9 nginx