为什么需要在 upstart 脚本中使用 exec?

为什么需要在 upstart 脚本中使用 exec?

我经常看到一些 upstart 脚本有使用exec,这有什么意义呢?似乎删除 exec 脚本也可以?

例如

start on runlevel [2345]
stop on runlevel [06]

exec /path/to/program

答案1

如果删除exec,则启动脚本将继续运行,直到启动的实用程序终止。例如,效率低下并浪费额外的 RAM 和其他资源(除非您想监视某种异常终止,然后重新启动实用程序)

使用exec,实用程序将代替现有脚本启动,而不是等待已启动的实用程序终止。

答案2

有一个读取该脚本的 shell:

/path/to/program :将让 shell 启动“program”作为子命令

exec /path/to/program:将用“程序”替换 shell(节省 pid 和其他优点。而且没问题:此时您不再需要 shell 本身,因为该 shell 没有其他事情可做)

相关内容