Мой bash-скрипт не будет выполнять команды после команды kill - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь создать сценарий bash, который убивает процесс, а затем он будет выполнять другие действия.

PID=`ps -ef | grep logstash | grep -v "grep" | awk '{print $2}'`
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 $2}').С помощью этой команды мой скрипт также будет прерван.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

похоже, что имя вашего скрипта включает в себя "logstash".

Как следствие, PID заполняется двумя значениями, и команда kill также убивает ваш скрипт.

Переименуйте ваш скриптбез "logstash" в названии должен решить проблему.

0 голосов
/ 27 ноября 2018

Это должно исправить вашу проблему:

PID=$( ps -ef | grep -E '[ ]logstash[ ]' | grep -v "grep" | head -1 | awk '{print $2}')
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."

С уважением!

...