我正在运行一个ubuntu控制台,当我输入以下命令时,所有的进程都会被完全杀死。
kill -9 $(ps -ef | grep 'job1/' | grep -v grep| awk '{print $2}')但是,当我试图使用crontab常规调用脚本时,事情出了问题。
#!/bin/bash
pid=$(ps -ef | grep 'job1/' | grep -v grep | awk '{print $2}')
echo $pid
kill -9 $pid
# the following commands were never executed
sleep 5
/data/job1/tomcat8/bin/startup.sh结果是这样的:
15432 15438
Killed它似乎刚刚结束了作业,但不会执行以下命令。有什么想法吗?
发布于 2017-02-21 09:18:27
如果您要创建一个脚本,kill的事情通过PID,那么您需要非常小心,以杀死正确的东西。
您已经有了grep -v grep来避免杀死grep本身,但是您似乎还没有投入任何保护来防止脚本本身的破坏。既然你知道你自己的PID,你可以grep -v,但是如果你是123,而你想要杀死的东西之一是1234呢?用脚本的名字可能更安全。
https://stackoverflow.com/questions/42361703
复制相似问题