各位老铁们好,相信很多人对如何在Linux命令行中杀死进程?都不是特别的了解,因此呢,今天就来为大家分享下关于如何在Linux命令行中杀死进程?以及的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
“终止进程”是指在进程执行过程中停止进程。如果您知道进程ID (PID),则可以使用kill命令,如下所示:
Kill signal PID 在上面的语法中,signal 是指要发送的终止信号,PID 是指进程的ID。
在开始终止进程之前,您应该了解一些事情,例如哪些终止信号可用,如何查找PID 等。
让我们从信号开始。
Linux 中的终止信号
当进程被操作系统或用户终止时,即进程未自行完成时,会向其发送终端信号。
以下是可用的终止信号:
SIGHUP: 1:信号挂起:当控制进程的终端关闭时发送到该进程。 SIGINT:2:信号中断:当用户终止进程时向进程发送的信号。 (例如Ctrl + X) SIGKILL: 9:信号Kill:立即退出进程的信号,不允许其保存当前状态。 SIGTERM: 15:信号终止:发送到请求终止进程的信号。该信号可以被进程忽略。但这是终止进程的首选方法,因为当进程收到SIGTERM 时它会释放资源。 SIGSTOP:19 (x86、ARM)、17 (Alpha)、23 (MIPS)、24 (PARISC):信号停止:停止进程但稍后恢复进程的信号。通常使用信号9 和15
获取进程的PID
你还需要知道你想要杀死的进程的详细信息,使用kill命令你必须提供进程的ID(PID),你可以从进程名称中获取PID:
pidof exact_process_name
在 Linux 命令行中终止进程
让我们首先看一下kill 命令,因为您将比killall 使用更多的命令。
使用 kill 命令
Kill 命令要求您知道要终止的进程的ID,以及终止信号(可选)。
要简单地终止该命令,请使用以下语法:
kill [signal] PID 向PID 发送终止信号是可选的,如果没有提供信号,kill 默认发送SIGTERM (15),以优雅终止所述进程。
我使用sleep 命令启动了后台进程(它给了我一个PID),让我们尝试使用Kill 命令杀死它。
杀死这个特定的sleep 实例如下所示:
$ sleep 120 [1] 125686 $ Kill 125686 [1] +终止睡眠120 如果我想使用终止信号,我可以使用数值或信号本身:
$ 睡眠120 [1] 125746$ 杀死-SIGKILL 125746[1] + 杀死睡眠120####—-##—–####$ 睡眠120 [1] 125759$ 杀死-9 125759 [1]+killed sleep 120如果kill命令没有指定信号,则默认使用SIGTERM(15)。
使用 killall 命令
如果不知道某个进程的PID,或者该进程有多个子进程,想一次性杀死子进程和父进程,可以使用killall命令。
Killall [signal] process-name 与kill命令类似,指定终止信号是可选的,当没有指定终止信号时,killall将发送SIGTERM(15)来优雅地关闭进程。
为了演示killall的使用,我想杀死两个正在运行的sleep命令。
$ sleep 120 [1] 18609 $ sleep 2000 [2] 18612 $ Killall sleep [1] – Termerated sleep 120 [2] + Termulated sleep 2000 此外,您可以使用-e 标志来查找进程名称的精确匹配。
使用 pkill 命令
命令kill 的替代命令是pkill 命令,它是pgrep 和kill 命令的“组合”。
Killall 杀死所有具有匹配名称的进程。另一方面,pkill 使用模式匹配来匹配进程并杀死它们。
语法如下:
pkill [选项] pkill 模式命令中可用的一些有用选项如下:
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/165888.html
用户评论
暖栀
我一直在找这个!之前总是在后台运行的任务stuck了不知道怎么解决,看到这篇文章感觉瞬间明智好多!
有12位网友表示赞同!
心悸╰つ
写得真不错,解释的很清楚!我现在刚开始学习Linux,很多命令都不懂,你写的教程很适合新手入门。 特别是kill指令的部分,用例子讲解得特别好理解。
有20位网友表示赞同!
限量版女汉子
杀进程的时候我比较喜欢使用信号量的方式,这样可以更精准地控制进程终止。虽然这篇文章提到了其他方法,但我还是觉得这个是最便捷的。
有9位网友表示赞同!
葵雨
同意!有时候kill 遇到问题的时候会尝试使用更强力的命令,不过确实要注意谨慎,毕竟强制终止可能导致数据丢失风险。
有19位网友表示赞同!
|赤;焰﹏゛
我觉得标题写得不够直观,比如说可以用“Linux 常用命令: 如何快速结束进程?”这样更吸引人看吧?
有16位网友表示赞同!
无寒
我是比较喜欢使用图形界面管理进程的,不过偶尔也会在命令行中操作,这篇文章对我的理解很有帮助!
有8位网友表示赞同!
巷口酒肆
话说我有个疑问,如果某个进程完全占满了CPU资源怎么办?这个指令还能用吗?需要更多的技巧才行?
有19位网友表示赞同!
聽風
文章内容挺不错的,特别是那些错误处理方法的建议,有时候我们真的会遇到一些难以解决的问题!
有9位网友表示赞同!
眉黛如画
我也经常会因为后台任务卡住而头疼,现在有了这篇文章指导,以后就不用烦恼了!要好好收藏一下。
有12位网友表示赞同!
万象皆为过客
这篇文章虽然不错,但是我觉得对于新手来说可能有些难度,可以多添加一些解释和举例说明会更加友好些。
有8位网友表示赞同!
绝版女子
杀进程是一个非常重要的技能,特别是当你遇到死活不运行的程序的时候。你的文章写得很好,涵盖了大多数常用的方法。我平时也会使用ps命令来查看进程信息。
有9位网友表示赞同!
青衫故人
这个kill指令真的是 Linux 中必备的工具!而且它还提供了很多选项,可以根据具体情况选择不同的终止方式
有11位网友表示赞同!
醉枫染墨
我觉得这篇文章可以加上一些更多高级的使用技巧,比如如何杀死多个进程 、 或者如何使用脚本自动终止进程等等。
有8位网友表示赞同!
素衣青丝
其实有时候后台任务意外中止了,会导致数据丢失或系统不稳定情况,需要注意谨慎操作和备份重要文件!
有18位网友表示赞同!
烬陌袅
我很喜欢你文章中提到的`pkill`命令,它可以依据进程名称快速定位并终止指定的进程,比单纯使用kill指令更为便捷!
有5位网友表示赞同!
tina
我也非常同意你的观点,在终止进程之前应尝试发送信号,这样可以给进程一个机会正常的关闭,避免数据丢失的问题。
有5位网友表示赞同!
坠入深海i
感谢分享这篇文章,它让我了解到很多新的知识。我会好好尝试这些方法,提高自己的Linux操作水平!
有8位网友表示赞同!