美文网首页学习学习之Linux
Linux杀死进程的方法总结

Linux杀死进程的方法总结

作者: 刘小白DOER | 来源:发表于2021-06-11 13:54 被阅读0次

    今天看脚本遇到两种杀死进程的命令:

    kill -9 `ps aux | grep "$agent_name" | grep -v "grep"| awk '{print $2}'`

    killall -9 $agent_name  > /dev/null 2>&1

    研究一番。发现杀死进程有好几种方法。首先看一下查看进程的ps的两种用法。Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。ps aux最初用到Unix Style中,而ps -ef被用在SystemV Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。

1、kill

    默认参数下,kill 发送SIGTERM(15)信号给进程,告诉进程需要被关闭,自行停止运行并退出。这个是杀死进程最安全的方法。

2、kill -9

    表示强制杀死该进程,与SIGTERM相比,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理。

3、pkill

    pkill 表示 pgrep+kill ,pgrep表明了这个命令是专门用于进程查询的grep。pkill或者pgrep只要给出进程名的一部分就可以终止进程。

4、killall

    杀死同一进程组内的所有进程,与 kill 不同的是它会杀死指定名字的所有进程。其允许指定要终止的进程的名称,而非PID。killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。

    利用什么的命令该怎么杀死进程呢?统一用kill来演示。

 kill `ps aux | grep "$agent_name" | grep -v grep| awk '{print $2}'`

 kill $(ps aux | grep "$agent_name" | grep -v grep| awk '{print $2}')

ps aux | grep "$agent_name" | grep -v "grep"| awk '{print $2}'  | xargs kill 

kill `pgrep "$agent_name"`

pgrep "$agent_name" | xargs kill 

kill `pidof "$agent_name"`

pidof "$agent_name" | xargs kill 

pkill  "$agent_name"

killall  "$agent_name"

相关文章

网友评论

    本文标题:Linux杀死进程的方法总结

    本文链接:https://www.haomeiwen.com/subject/dgameltx.html