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.程序收到某個訊號,而該訊號使程式終止。不管是哪種退出方式,系統最終都會執行核心中的...