gpt4 book ai didi

用c语言实现HUP信号重启进程的方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章用c语言实现HUP信号重启进程的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

代码如下所示:

复制代码 代码如下

#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] 尽量使用绝对路径, 因为程序执行过程中可能会使用 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); } 。

最后此篇关于用c语言实现HUP信号重启进程的方法的文章就讲到这里了,如果你想了解更多关于用c语言实现HUP信号重启进程的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com