如何保持守護程序被殺死後能夠再次啟動
阿新 • • 發佈:2019-01-27
系統自動啟動Linux APP 方式有很多
如利用 inittab init.d
關於守護程序被殺死後再次啟動的文章看了很多,一直沒找到適合我專案的。最後想了一個辦法曲線救國。
上程式碼
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> //inittab 加入監聽此程式 //利用此程式監聽test_api_app 程序執行情況 int main(void) { char buffer[2]; memset(buffer,'\0',2); int num; FILE *fp; sleep(15); for(;;) { fp=popen("ps -ef | grep test_api_app | grep -v grep | wc -l","r"); if(NULL == fp) { pclose(fp); } else { fgets(buffer,sizeof(buffer),fp); pclose(fp); num=atoi(buffer); //DbgPrintf("have %d pthread\n",num); if(num<0||num==0) system("test_api_app"); } sleep(10); } return 0; }
這樣做,我們可以保證此程式被殺死後能被inittab 再次啟動,此程式啟動後能監聽守護程序是否執行,如果程序數小於等於0,啟動程序。