为什么我应该使用 fork() 来守护我的进程?
Why should I use fork() to daemonize my process?
根据我的目的,我只想让我的进程在后台运行。然后我可以编写普通程序并使用以下命令运行它: Nohup MyProgram 1>2 2>/dev/null &
然后这个程序将在后台运行,就像作为一个守护程序一样。
这样,我就不需要调用 fork(( 在后台运行。 所以我的问题是使用 fork(( 函数在后台使用上述命令运行程序有什么区别?
TL;DR 不需要fork()
调用,它只是有助于为程序用户提供一个漂亮的 UI。
守护程序使用fork()
创建它的副本。然后,子进程继续运行(在后台(。父进程可能会产生一些输出(状态(,然后退出。
当然,您可以只编写程序的子部分并使用您发布的命令行启动它:
$ nohup myprogram 1>2 2>/dev/null &
但是如果你编写守护进程并且我必须使用它,我当然更喜欢使用更简单的命令行,而不需要将程序置于后台并确保其输出不会使其停止所需的所有脚手架等等:
$ myprogram # there is no need for anything else
相关文章:
- 为什么我应该使用 fork() 来守护我的进程?
- 如何处理守护事件
- 守护进程()有什么缺点吗?
- 从守护程序启动的控制台应用捕获输出
- 使用 gdb 调试 linux 守护程序的初始启动
- 如何通过使用C,C 在Linux上指定其名称,以编程方式检查特定的守护程序
- 系统会冻结如果我使用运行的守护程序重新启动或关闭,该守护程序可以使用Fanotify控制对文件的访问
- 通过C 代码在Linux上启动/停止守护程序
- boost-asio 作为守护进程的"template"
- Linux 守护进程 - 运行函数两次
- Unix域套接字(C++)-客户端使服务器守护进程崩溃
- HHVM-运行资源丰富的php守护进程
- DBUS 代码在放置在守护进程内时崩溃,但在没有守护进程代码的独立独立 main() 函数中运行良好
- 启动-停止守护进程启动的C程序无法捕获信号
- 当将应用程序作为启动的守护程序运行时,C++ 库中的信号 10 (SIGBUS)
- 程序的守护程序版本崩溃时的查找位置
- 如何使本机Unix/Linux守护进程在Android上工作
- 创建C++守护进程并保护环境
- 在 Mac OSX 上打包 C++ 守护程序的推荐方法是什么?
- 我不希望一个作为守护进程的服务器进程关闭——即使在收到终止信号时也是如此.有什么办法可以确保这一点吗