gpt4 book ai didi

c - 我的进程仍然是守护进程吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:10 26 4
gpt4 key购买 nike

我是编程新手,我的英语可能有点生疏,所以请保持温和:)。

我正在尝试创建一组属于同一组但没有组长的守护进程。我想我做到了但我不确定我的方法是否仍然满足要求(如果我的进程仍然是守护进程)

这部分在0.c中

pid_t pid=fork();
if (pid==0)
{
execl ("./1", "1", str, (char *)0);
exit(EXIT_SUCCESS);
sleep(1);
}

这部分代码在1.c中

pid = fork();
if (pid < 0)
exit(EXIT_FAILURE);
if (pid > 0)
exit(EXIT_SUCCESS);
gid = setsid();
if (gid < 0)
exit(EXIT_FAILURE);
gid = setsid();
if (gid < 0)
exit(EXIT_FAILURE);
for(i=0; i<n; i++)
{
pid_t pid=fork();
if (pid==0)
{
execl ("./2", "2", str, str1, (char *)0);
exit(EXIT_SUCCESS);
sleep(1);
}
}

这在 2

pid_t pid;
pid = fork();
if (pid < 0)
exit(EXIT_FAILURE);
if (pid > 0)
exit(EXIT_SUCCESS);
umask(0);
chdir("./");
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);

现在假设我有 n 个进程 2 它们都是守护进程吗?

编辑:我现在明白那些可能不是守护进程。有人可以向我解释如何制作满足我要求的守护进程吗?

最佳答案

通常守护进程需要与其控制终端断开关联,或者至少忽略 SIGHUP,而您似乎没有这样做。

所以不,我认为您的代码没有达到守护进程状态。

经过进一步调查,我发现 setsid() 取消了与控制终端的关联,以及其他操作。所以请忽略这一点。

关于c - 我的进程仍然是守护进程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34729379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com