start-stop-daemon with --background vs 运行 using & option

start-stop-daemon with --background vs running using & option

运行后台进程使用带有 --background 选项的 start-stop-daemon 和与 & 一起使用有什么区别?哪个选项最好,为什么?

我更喜欢 & 选项来进行后台作业。但是,在我忘记包含 & 的情况下,我使用 Ctrl-Z 命令停止作业,然后输入 bg 将停止的命令移到后台。

虽然我没有观察到这些方法有任何区别(除了 & 可以在 脚本中使用)。我的一位同事非常高兴地了解到 Ctrl-Z 暂停工作的选项。他声称他有一些任务“效果更好”。

如果您想了解有关 Ctrl-Z 和 bg 的更多信息,请查找 bash 作业控制。

如果您使用 start-stop-daemon --background,那么 start-stop-daemon 将在后台分叉一个进程到 运行,然后 start-stop-daemon 立即退出。除其他外,这意味着您可以检查 start-stop-daemon.

的退出状态

如果您使用 start-stop-daemon &,那么 shell 会分叉出一个后台进程并在其中 运行s start-stop-daemon。您将无法检查其退出状态,因为它实际上不会退出(直到 运行s 退出)。

在大多数情况下,start-stop-daemon --background 是更好的选择。