国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

用c語(yǔ)言實(shí)現(xiàn)HUP信號(hào)重啟進(jìn)程的方法

2020-01-26 16:06:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
代碼如下所示:
復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <errno.h>
#include <syslog.h>
#include <stdarg.h>
char **bak_argv;
int flag = 0;
void restart(void);
void sighup_handler(int sig);
// argv[0] 盡量使用絕對(duì)路徑, 因?yàn)槌绦驁?zhí)行過(guò)程中可能會(huì)使用 chdir() .
int main(int argc, char *argv[])
{
 openlog("sig_hup", LOG_PID, 0);
 syslog(LOG_ERR, "%s", argv[0]);
 closelog();

 bak_argv = argv;
 signal(SIGHUP, sighup_handler);

 while(1)
 {
  if(flag)
   restart();
  sleep(10);
 }
 return 0;
}
void sighup_handler(int sig)
{
 flag = 1;
}
void restart(void)
{
 switch(fork())
 {
  case -1:
   openlog("sig_hup", LOG_PID, 0);
   syslog(LOG_ERR, "fork failed: %s", strerror(errno));
   closelog();

   exit(EXIT_FAILURE);
   break;
  case 0:
   break;
  default:
   exit(EXIT_SUCCESS);
 }
 execv(bak_argv[0], bak_argv);

 openlog("sig_hup", LOG_PID, 0);
 syslog(LOG_ERR, "execv(%s, ...) failed: %s/n", bak_argv[0], strerror(errno));
 closelog();

 exit(EXIT_FAILURE);
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 绥滨县| 安徽省| 新河县| 洞头县| 孝昌县| 台中县| 荥经县| 建瓯市| 公主岭市| 苍溪县| 宣城市| 偏关县| 辽阳县| 西乌| 昆山市| 南城县| 桓台县| 呼和浩特市| 兴文县| 麻栗坡县| 长顺县| 株洲县| 溧水县| 德钦县| 绥芬河市| 斗六市| 抚宁县| 无为县| 金阳县| 彭水| 富锦市| 平原县| 乐昌市| 罗定市| 阳信县| 鱼台县| 东平县| 孝昌县| 孝昌县| 宁津县| 乌拉特中旗|