你是怎么在 Linux 干掉进程的?

WBOY
发布: 2024-02-09 19:06:09
转载
1145 人浏览过

如果您想终止一个正在运行的Linux进程,您可以使用多种方法。如果进程在前台运行,您可以使用快捷键Ctrl+C来终止它。但是,如果进程在后台运行且不可见,您可以使用专门的命令来杀死它。

你是怎么在 Linux 干掉进程的?

要终止一个进程,就是要在它执行过程中停止它。如果您知道进程的ID(PID),则可以使用kill命令来终止它,如下所示:

> kill
登录后复制

在上面的语法中,signal指的是要发送终止的终止信号,并且PID指的是进程的 ID。

还有一个 killall 命令,我将在本文中讨论kill 和 killall 命令。

Linux 中的终止信号

当一个进程被操作系统或用户终止时,即进程没有自行完成,它会被发送一个终端信号。

以下是可用的终止信号:

信号 数值 描述
SIGHUP 1 信号挂断:当控制它的终端关闭时发送到进程。
SIGINT 2 信号中断:当用户终止进程时发送给进程的信号.(例如 Ctrl + X)
SIGKILL 9 Signal Kill:立即退出进程的信号,不允许它保存当前状态。
SIGTERM 15 信号终止:发送到信号以请求终止进程。该信号可以被进程忽略。但这是终止进程的首选方式,因为它可以在进程收到 SIGTERM 时释放资源。
SIGSTOP 19 (for x86, ARM and most others) 17 (for Alpha) 23 (for MIPS) 24 (for PARISC) 停止信号:停止进程的信号,但稍后将恢复。

常用的信号 9 和 15

获取进程的PID

你还需要了解要终止的进程的详细信息。使用 kill 命令,你必须提供进程的 ID(PID)。你可以从进程名称中获取 PID

> pidof exact_process_name
登录后复制

比如获取java进程的进程号

> pidof java 8075 1032
登录后复制

在 Linux 命令行中终止进程

使用 kill 命令

kill命令要求你知道要终止的进程的 ID,以及可选的终止信号。

要简单地终止命令,请使用以下语法:

kill [signal]
登录后复制

向 PID 发送终止信号是可选的,如果未提供任何信号,则kill默认发送 SIGTERM (15),以正常终止所述进程结束。

我启动了sleep 命令的后台进程(它给了我一个 PID)。我们使用kill命令杀死它。

杀死这个特定的实例sleep如下所示:

$ sleep 120 & [1] 125686 $ kill 125686 [1] + terminated sleep 120
登录后复制

如果我想使用终止信号,我可以使用数值或信号本身:

$ sleep 120 & [1] 125746 $ kill -SIGKILL 125746 [1] + killed sleep 120 $ sleep 120 & [1] 125759 $ kill -9 125759 [1] + killed sleep 120
登录后复制

如果 kill 命令没有指定信号,则默认使用 SIGTERM (15)。

使用 killall 命令

如果不知道某个进程的PID是多少,或者该进程有多个子进程,又想一次性杀死子进程和父进程,可以使用killall命令。

killall [signal]
登录后复制

kill命令类似,指定终止信号是可选的。当没有指定终止信号时,killall将发送 SIGTERM (15) 以优雅地关闭所述进程。

为了演示killall的使用,我将杀死两个正在运行的 sleep 命令。

$ sleep 120 & [1] 112351 $ sleep 2000 & [2] 112362 $ killall sleep [1]- Terminated sleep 120 [2]+ Terminated sleep 2000
登录后复制

此外,你可以使用该-e标志来查找进程名称的完全匹配。

使用 pkill 命令

命令的替代命令killpkill命令。它是pgrepkill命令的组合。

killall杀死所有具有匹配名称的进程。另一方面,pkill使用模式匹配来匹配进程并杀死它们。

pkill [options] pattern
登录后复制

命令中可用的一些有用选项pkill如下:

  • -u: 特定所有者拥有的进程
  • -x: 完全匹配模式的进程
  • -signal: 指定终止信号(默认为 SIGTERM)

结束nginx进程

> pkill nginx
登录后复制

以上是你是怎么在 Linux 干掉进程的?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:lxlinux.net
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!