我的 bash 脚本不会在 kill 命令后执行命令
My bash script won't execute commands after kill command
我正在尝试制作一个 bash 脚本,它会终止一个进程,然后它会做其他事情。
PID=`ps -ef | grep logstash | grep -v "grep" | awk '{print }'`
echo $PID
kill -9 $PID
echo "logstash process is stopped"
rm /home/user/test.csv
echo "test.csv is deleted."
rm /home/example.txt
echo "example.txt is deleted."
当我 运行 脚本时,它按预期杀死了 logstash
但它也终止了我的整个脚本。
我也试过:kill -9 $(ps aux | grep 'logstash' | awk '{print }')
。
使用此命令,我的脚本也将终止。
这应该可以解决您的问题:
PID=$( ps -ef | grep -E '[ ]logstash[ ]' | grep -v "grep" | head -1 | awk '{print }')
echo $PID
kill -9 $PID
echo "logstash process is stopped"
rm /home/user/test.csv
echo "test.csv is deleted."
rm /home/example.txt
echo "example.txt is deleted."
此致!
您的脚本名称似乎包含 "logstash"。
因此,PID 填充了 2 个值,kill 命令也会终止您的脚本。
重命名您的脚本,名称中不包含 "logstash" 应该可以解决问题。
我正在尝试制作一个 bash 脚本,它会终止一个进程,然后它会做其他事情。
PID=`ps -ef | grep logstash | grep -v "grep" | awk '{print }'`
echo $PID
kill -9 $PID
echo "logstash process is stopped"
rm /home/user/test.csv
echo "test.csv is deleted."
rm /home/example.txt
echo "example.txt is deleted."
当我 运行 脚本时,它按预期杀死了 logstash
但它也终止了我的整个脚本。
我也试过:kill -9 $(ps aux | grep 'logstash' | awk '{print }')
。
使用此命令,我的脚本也将终止。
这应该可以解决您的问题:
PID=$( ps -ef | grep -E '[ ]logstash[ ]' | grep -v "grep" | head -1 | awk '{print }')
echo $PID
kill -9 $PID
echo "logstash process is stopped"
rm /home/user/test.csv
echo "test.csv is deleted."
rm /home/example.txt
echo "example.txt is deleted."
此致!
您的脚本名称似乎包含 "logstash"。
因此,PID 填充了 2 个值,kill 命令也会终止您的脚本。
重命名您的脚本,名称中不包含 "logstash" 应该可以解决问题。