所以我在unix中创建了一个c程序。这就是它的作用。
1)它 fork 了一个进程。
子进程: 对闹钟程序执行 execv(),该程序在“x”秒后打印“Alarm rang”
父进程: 对上面的子进程执行 waitPID。 然后退出。
输出: 所以我运行了它,我收到了“警报在 x 秒后响起”
一切正常。但现在我想要的是让子进程在后台运行。这意味着我不想看到它的输出。但我希望它运行并退出。
最佳答案
要让子进程在后台运行,需要将其设置为 daemon process .
要使其成为守护进程,需要遵循几个步骤..
- fork 父进程
- 更改文件模式掩码 (umask)
- 打开任何日志进行写入
- 创建唯一的 session ID (SID)
- 将当前工作目录更改到安全位置
- 关闭标准文件描述符
有关更好的解释,请参阅this .
关于c - Exec() 和 Fork(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32421397/