linux监控程序自启动!!

来源:互联网 发布:python csv 编辑:程序博客网 时间:2024/06/05 06:34

    在网上找了一个Linux的监控程序,主要功能是,实现目标程序异常关闭后,自动重启。

    监控程序如下:原作者可能是:http://blog.csdn.net/yiyaaixuexi/article/details/7068378

#include <stdlib.h>  #include <string.h>  #include <unistd.h>    extern char **environ;  enum{      START = 0,      WAIT,      STOPPING,  };  int main(int argc, char **argv)  {      int status = 0, mode = START;      pid_t pid ;        while(1)      {          switch(mode)          {              case START:                  pid = fork();                  if(!pid){                      execle("./myApp","",NULL , environ);                      //execle("./myApp","./myApp","-qws",NULL,environ);                  }                  if(pid > 0)                      mode = WAIT;                  break;              case WAIT:                  if(waitpid(pid, &status, 0) < 0)                  {                      mode = START;                      break;                  }                  else if(WIFSIGNALED(status)||WIFSTOPPED(status)||WIFEXITED(status))                  {                      mode = START;                  }else{                      mode = WAIT;                  }                  break;              default:                  break;          }      }      return 0;  } 
    编译之后,使用shell脚本运行,出现问题。说什么can't fork网上找了找,但是没找到有帮助的东西。但是手动执行就没有问题。守护程序名是Guard,然后存放在sd卡上面,然后shell脚本就加一句/sdcarc/Guard。

    手动执行的时候,Guard是在当前目录下面,而shell中是/sdcard/Guard,会不会是这个原因的,尝试修改shell如下:

    cd /sdcard 

    ./Guard &

    Ok!!真的运行起来了,而且可以实现开机自启动了。


1 0
原创粉丝点击