"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 ожидаемый результат.

Попробуйте убить по имени процесса:

pkill -9 my_app
Другие вопросы по тегам