如何在Linux中以PID结束任务

时间:2020-01-09 14:17:07  来源:igfitidea点击:

如何从Linux命令行中终止进程?
如何在Linux操作系统中以PID结束任务?
通过发送适当的终止信号来强制终止Linux进程。
在本教程中我们学习了如何结束Linux命令行选项的任务(杀死任务)。

在Linux中什么是PID?

PID是过程标识号的首字母缩写。
在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命令和grep命令/egrep命令:

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

让我们看看如何使用PID从命令行中终止进程或任务。

步骤1获取Firefox进程的PID

运行:

pidof firefox

或者

ps aux | grep firefox

或者

pgrep firefox

输出示例:

22171

步骤2在Linux中使用PID终止任务

运行:

kill -15 22171

如果以上操作失败,请运行:

kill -9 22171

步骤3验证

运行以下命令以确保具有PID 22171的任务消失:

ps aux | grep 22171
pidof firefox
pgrep firefox

在这个最后的示例中,找到一个backup-job.sh任务的pid并将其杀死:

pgrep backup-job.sh
kill -15 29107

关于killall命令的说明

此命令按名称杀死进程。
无需查找PID。
假设您要杀死任务或名为chrome的进程,只需运行:

killall -15 chrome
killall -9 nginx

pkill命令

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

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