zoukankan      html  css  js  c++  java
  • 【转】linux监控程序程序自动重启方法

    原文:http://blog.chinaunix.net/uid-26588712-id-3196464.html

     1     #include <stdio.h>
     2     #include <unistd.h>
     3     #include <errno.h>
     4     #include <string.h>
     5     #include <sys/types.h>
     6     #include <sys/wait.h>
     7     #include <stdlib.h>
     8      
     9     int
    10     main(int argc, char **argv)
    11     {
    12         int ret, i, status;
    13         char *child_argv[100] = {0};
    14         pid_t pid;
    15         if (argc < 2) {
    16      
    17             fprintf(stderr, "Usage:%s <exe_path> <args...>\n", argv[0]);
    18             return -1;
    19         }
    20         for (i = 1; i < argc; ++i) {
    21             child_argv[i-1] = (char *)malloc(strlen(argv[i])+1);
    22             strncpy(child_argv[i-1], argv[i], strlen(argv[i]));
    23             child_argv[i-1][strlen(argv[i])] = '\0';
    24         }
    25         while(1){
    26      
    27             pid = fork();
    28             if (pid == -1) {
    29                 fprintf(stderr, "fork() error.errno:%d error:%sn\n", errno, strerror(errno));
    30                 break;
    31             }
    32             if (pid == 0) {
    33                 ret = execv(child_argv[0], (char **)child_argv);
    34                 //ret = execl(child_argv[0], "portmap", NULL, 0);
    35                 if (ret < 0) {
    36                     fprintf(stderr, "execv ret:%d errno:%d error:%sn \n", ret, errno, strerror(errno));
    37                     continue;
    38                 }
    39                 exit(0);
    40             }
    41      
    42             if (pid > 0) {
    43                 pid = wait(&status);
    44      
    45                 fprintf(stdout, "wait return");
    46             }
    47      
    48         }
    49      
    50      
    51         return 0;
    52     }
  • 相关阅读:
    堆栈(线性表)
    链表 -- 循环链表(线性表)
    链表 -- 单向链表(线性表)
    排序算法--归并算法(强分治)
    sqlhelper
    sqlite与sqlserver区别
    常用sql集锦
    外出实施问题总结
    JS深入理解系列(一):编写高质量代码
    通用分页(Jquery版)
  • 原文地址:https://www.cnblogs.com/jevan/p/2683016.html
Copyright © 2011-2022 走看看