Linux下如何让c程序一直运行

Linux下如何让c程序一直运行,第1张

有三个办法:

一、最直接的办法,用nohup命令,将程序挂到后台。

二、最方便的办法,用screen命令,起个虚拟终端,即使断开连接也能继续在后台跑。

三、最正常的思路,是将监听程序置为daemon,直接在后台运行,具体是监听程序启动后,fork一个子进程,将子进程setsid,然后父进程退出,实际 *** 作都放到子进程中。

当然程序里面的循环结构是肯定要的。

Ctrl + C 不是万能的。

这个是由系统启动过程进行调用的。

只有当前正在运行中,且处于当前 CLI 交互状态的程序才能收到 Ctrl + C 。而且还需要这个程序确实可以响应 Ctrl + C 。

----------------------

这和平台无关,要看你具体如何启动这个程序的。

rc.X 里面的程序,应该有 start-stop-daemon 来控制。这个程序是不能提供 Ctrl + C 方式中断运行所运行的程序的,他会跟踪被运行的程序。一般情况下,他如果发现程序挂掉,他会重新启动程序。

---------------------

检查你的启动相关程序、脚本吧。嵌入式很有可能使用了不同的软件导致功能差异。

#include <unistd.h>

#include <stdio.h>

void child_process()

{

    while (true)

    {

        printf("I am child process\n")

    }

}

int main()

{

     pid_t pid = fork()

     if (pid < 0)

     {

         printf("fork error! exit\n")

     }   

     if (pid == 0) //子进程

     {

         child_process()

         return 0

     }   

     else //父进程

     {

         //父进程要执行的内容

     }

     return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8516608.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存