Linux 下實現程序退出後自動重啟

2021-07-10 06:37:40 字數 702 閱讀 2231



linux 下實現程序退出後自動重啟

一般方案有2

1.採用指令碼,網上很多,但對一些嵌入式系統因資源限制,大部分命令裁剪了,故不可行

2.採用fork,父程序等待子程序退出

一下採用fork 方法實現,對於重啟多個程序,

可採用(pid = waitpid( -1, &status, wnohang))避免多個程序同時重啟導致殭屍程序

#include #include #include #include #include #include #include #include using namespace std;

static const char* full_name= "/usr/bin/server";

static const char* program = "server";

static void startprocess(std::string &name, std::string ¶m)

pid_t pid = fork();

if (pid < 0)

if (pid == 0)

printf("[watchdog] chirend pid=%d ok!\n",pid);

if (pid>0)

} }int main(int argc,char** argv)

Linux下程序的退出

注意,本文說的是整個程序 乙個程序可能包含多個執行緒 的退出。乙個程序的退出,有可能是由程序自己的使用者態 主動退出的,也可能是由核心通過訊號處理機制 如sigkill sigabrt 強制執行的。一 使用者態主動退出 有如下多種途徑,直接main函式返回,呼叫exit 呼叫 exit 呼叫exit...

Linux程序退出

在linux下,程序退出就表示程序即將結束了 為什麼是即將,這是因為linux設計的是父程序給子程序收屍 正常退出包括3種情形。main函式中執行return 0 呼叫exit函式,函式原型 void exit int status 呼叫 exit函式,函式原型 void exit int stat...

Linux下程序退出的幾種形式

閱讀目錄 回到目錄 linux 下程序的退出分為正常退出和異常退出兩種 1.正常退出 a.在main 函式中執行return b.呼叫exit 函式 c.呼叫 exit 函式 2.異常退出 a.呼叫about函式 b.程序收到某個訊號,而該訊號使程式終止。不管是哪種退出方式,系統最終都會執行核心中的...