Я часто вижу, что какой-то сценарий выскочки может использовать exec
, какой в этом смысл? Кажется, удаление exec скрипт тоже работает?
например
start on runlevel [2345]
stop on runlevel [06]
exec /path/to/program
Если вы удалите exec
, то сценарий запуска продолжит работу, ожидая завершения работы запущенной утилиты. Например. неэффективен и расходует лишнюю оперативную память и другие ресурсы (если вы не хотите отслеживать какое-либо ненормальное завершение работы и снова перезапускать утилиту)
С участием exec
, вместо того, чтобы ждать завершения работы запущенной утилиты, утилита запускается вместо существующего сценария.
Это оболочка, читающая этот сценарий:
/path/to/program
: будет иметь команду запуска оболочки 'program' в качестве подкоманды
exec /path/to/program
: заменит оболочку на 'программу' (сохранение pid и другие преимущества. И это нормально: в этот момент вам больше не нужна оболочка, так как этой оболочке больше нечего делать)