我已经阅读并了解您如何创建守护进程,但是从我阅读的所有内容中,我从未真正理解为什么需要这样做。
我读过我们使用 fork-setid-fork 来避免获得终端控制权的过程,但这意味着什么?如果我在后台使用 & 启动一个程序(例如 './script &' ),是什么让这个进程的执行与我正常运行一个将自身变成守护进程的程序不同?
这是否仅仅意味着如果我注销后台进程将停止并且守护程序将继续运行?我真的很难理解“获得终端控制权”这件事。
这困扰我的原因是因为我正在机器人上处理嵌入式 RPi,因此我需要让程序在启动时启动。目前我只是用这样的命令从 rc.local 启动它们su user -c 'python /home/user/launcher.py &' &
。我在启动时启动程序从来没有遇到过任何问题(我ps -e
什至可以看到通过SSH 连接到 RPi 时使用的过程),但我想知道是否有任何风险/这是否是不好的做法。