Linux杀死进程的⽅法总结
今天看脚本遇到两种杀死进程的命令:
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 -9grep命令查看进程
表⽰强制杀死该进程,与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"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论