Назад | Перейти на главную страницу

Зачем нужно использовать exec в скрипте выскочки?

Я часто вижу, что какой-то сценарий выскочки может использовать 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 и другие преимущества. И это нормально: в этот момент вам больше не нужна оболочка, так как этой оболочке больше нечего делать)