asterstart.c

来自「asterisk web manager,make in php,run in 」· C语言 代码 · 共 49 行

C
49
字号
/*   Earl Terwilliger   earl@micpc.com   */#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#define BUFSIZE 1024#define PROCESS_CHECK "/bin/ps -ef | /bin/grep \"asterisk\" | /bin/grep -v grep | /bin/awk '{ print $8 }'"#define RENICE   "/usr/bin/renice -15 -p `cat /var/run/asterisk.pid`"#define PROCESS  "/usr/sbin/asterisk"#define PROCESS1 "/opt/asterisk/scripts/events/ProxyMan.py"int main() {  FILE *read_fp;  char buffer[BUFSIZE + 1],*ptr;  int chars_read,pid;  pid  = fork();  if (pid < 0) exit(1);  if (pid > 0) exit(0);    while (1) {    memset(buffer, '\0', sizeof(buffer));    read_fp = popen(PROCESS_CHECK, "r");    if (read_fp != NULL) {      chars_read = fread(buffer, sizeof(char), BUFSIZE, read_fp);      buffer[chars_read] = (char)'\0';      pclose(read_fp);    }    ptr = strstr(buffer,PROCESS);    if (ptr == NULL) {      system(PROCESS);      system(RENICE);      sleep(2);      system(PROCESS1);    }    sleep(15);  }  exit(0);}    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?