"kill -9 ..." выдает предупреждение при запуске из скрипта
В моем сценарии у меня есть это:
#!/bin/bash
kill -9 $(ps aux | grep '[m]y_app' | awk '{print $2}')
sleep 3
ENV_VAR=val123 nohup my_app &
Почему он печатает это:
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
?
Что не так с "убить"?
Когда я бегу по линии kill -9 $(ps aux | grep '[m]y_app' | awk '{print $2}')
вручную не выдает никаких предупреждений.
2 ответа
Решение
Я только что попробовал точно такой же код (с некоторыми случайными приложениями), и он прекрасно работает как из командной строки, так и из сценария (в Debian Jessie).
Чтобы отладить вашу ситуацию, попробуйте повторить то, что вы передаете команде kill внутри скрипта...
#!/bin/bash
echo $(ps aux | grep '[m]y_app' | awk '{print $2}')
... чтобы увидеть, вернет ли pid ожидаемый результат.