Мне нужно убить процесс, используя одну и ту же команду как в sh, так и в bash (в сценарии). Обычно я бы сделал следующее в bash:
SCRIPT=$(basename $0) #So the script knows itself
killall -9 $SCRIPT #Kill itself
Однако это не работает с использованием SH
Любые предложения по решению, которое будет работать в любом случае.
Есть ли более простой или правильный способ полного выхода из скрипта. Кажется, я много раз возвращался к этому вопросу на протяжении многих лет и так и не нашел официального правильного пути.
sh
, так и вbash
. Если вы пробуете это на разных машинах, проблема, скорее всего, в том, чтоkillall
(внешняя команда, не являющаяся частью ниsh
, ниbash
) недоступна. В любом случае не используйте-9
для уничтожения вашей программы; это предназначено только для остановки глючных программ, которые не реагируют ни на какие другие сигналы. Сигнал по умолчанию (TERM
) должен работать нормально; в противном случае попробуйтеINT
(-2). - person chepner   schedule 25.07.2014exit
для завершения скрипта? Сценарий самоубийства кажется немного странным. - person chepner   schedule 25.07.2014$PPID
(может быть доступно только для bash). Просто убедитесь, что вы знаете, что делаете. - person konsolebox   schedule 25.07.2014