终止命令在 bash 脚本中无法正常工作



我正在运行一个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

似乎只是杀死了这份工作,但不会执行以下命令。有什么想法吗?

如果您要制作一个 kill s y用pid的脚本,那么您需要非常小心以杀死正确的东西。

您已经有grep -v grep避免杀死GREP本身,但是似乎您没有采取任何保护以防止脚本自杀。既然您知道自己的PID,则可以grep -v,但是如果您是123,想要杀死的一件事是1234呢?可能更安全地按脚本名称。

最新更新