c程序以进程为背景而永不死?

时间:2014-02-25 21:09:10

标签: c linux api timer timertask

int daemon()
{
if (daemon(1, 1) < 0) /* Keep the same working directory and pipes */
{


             makeTimer("First Timer", &firstTimerID, 2, 2);   //2ms
             makeTimer("Second Timer", &secondTimerID, 10, 10);    //10ms
             makeTimer("Third Timer", &thirdTimerID, 100, 100);  //100ms
    return 1;
              }
    }




 int main()
{
daemon();
}


           return 0;

         }

我创建了一个计时器,计时器每2ms,10ms和100ms调用一次任务。我想在后台运行计时器,它永远不会死。任何人都可以在c程序中给我一些想法,在linux操作系统的后台运行任务。 我想让这三个电话在后台运行:

   makeTimer("First Timer", &firstTimerID, 2, 2);   //2ms
   makeTimer("Second Timer", &secondTimerID, 10, 10);    //10ms
   makeTimer("Third Timer", &thirdTimerID, 100, 100);  //100ms

2 个答案:

答案 0 :(得分:2)

daemon()尝试C中的unistd.h功能。它可以让您轻松地从终端分离并在后台运行。

就像

一样简单
if (daemon(1, 1) < 0) /* Keep the same working directory and pipes */
{
     perror("daemon");
     return 1;
}

然后将其放入main函数

答案 1 :(得分:0)

您可以使用nohup命令调用脚本。只需在命令行上运行脚本,如下所示nohup <myscript>

然而,您可能真正想要的是创建一个cron作业。检查您的Linux发行版的文档以了解更多信息。