守护进程:完全脱离控制台
后台进程:未完全脱离控制台
区别:在于标准文件句柄是否绑定到控制台。

但是后台进程需要输入“进程转到后台”命令使之进入后台,而题目要求是运行后就自动进入后台。
采取的办法是fork子进程,中止父进程,让子进程代替父进程完成后续操作。
经测试,这个方法可以实现:
int main(int argc, char** argv)
{
//1.1
pid_t pid = fork();
if (pid == -1) {
printf("error fork!\n");
return 0;
}
else if (pid > 0) {
exit(0); //父进程退出
}
else//子进程
{
while (1)sleep(1);
}
return 0;
}
本文介绍了如何通过创建子进程实现程序在启动后自动进入后台运行,重点在于理解守护进程和后台进程的区别。通过示例代码展示了使用fork函数创建子进程,父进程退出,子进程继续执行,从而达到程序后台运行的目的。这种方法确保了标准文件句柄与控制台的解绑,使得进程能够在不依赖控制台的情况下持续运行。
658

被折叠的 条评论
为什么被折叠?



