国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 大洼县| 资溪县| 咸宁市| 二连浩特市| 东莞市| 鄄城县| 永兴县| 沙河市| 武鸣县| 泽库县| 临清市| 巴青县| 安达市| 石台县| 威海市| 庆云县| 迁安市| 凌海市| 英德市| 太仆寺旗| 邛崃市| 锦屏县| 开远市| 连平县| 河北省| 定边县| 鹰潭市| 肃南| 睢宁县| 曲阜市| 出国| 横峰县| 勐海县| 阆中市| 门源| 济宁市| 浪卡子县| 靖西县| 固阳县| 龙门县| 曲周县|