linux后台进程实例
来源:互联网 发布:python是用来做什么的 编辑:程序博客网 时间:2024/05/21 08:53
完整代码如下:
#include<stdio.h>#include<sys/types.h>#include<unistd.h>#include<signal.h>#include<sys/param.h>#include<sys/stat.h>#include<time.h>#include<syslog.h>int init_daemon(void){ int pid; int i; /*忽略终端I/O信号与STOP信号*/ signal(SIGTTOU,SIG_IGN); signal(SIGTTIN,SIG_IGN); signal(SIGTSTP,SIG_IGN); signal(SIGHUP,SIG_IGN); pid=fork(); if(pid>0){ exit(0);/*结束父进程,使得子进程成为后台进程。*/ }else if(pid<0){ return -1; } /*建立一个新的进程组,在这个新进程组中,子进程成为这个进程组的首进程,以使该进程脱离所有终端*/ setsid(); /*再次新建一个子进程,退出父进程,保证该进程不是进程组长,同时让该进程无法再打开一个新的终端*/ pid=fork(); if(pid>0){ exit(0); } else if(pid<0){ return -1; } /*关闭所有从父进程继承的不再需要的文件描述符*/ for(i=0;i<NOFILE;close(i++)); /*改变工作目录,使得进程不与任何文件系统联系*/ chdir("/"); /*将文件屏蔽字设置为0*/ umask(0); /*忽略SIGCHLD信号*/ signal(SIGCHLD,SIG_IGN); return 0;}int main(){ time_t now; init_daemon(); syslog(LOG_USER|LOG_INFO,"测试守护进程!\n"); while(1){ sleep(8); time(&now); syslog(LOG_USER|LOG_INFO,"系统时间:\t\%s\t\t\n",ctime(&now)); }}
为保证本实例正常运行,请配置如下内容;
#vim /etc/rsyslog.conf
最未尾增加:
user.* /var/log/test.log
启动rsyslog
/etc/init.d/rsyslog restart
=============================
结果如下:
root@ubuntu:/var/log# tail -f /var/log/test.log
Apr 26 02:06:30 ubuntu daemon: 系统时间:#011Sun Apr 26 02:06:30 2015#012#011#011
Apr 26 02:06:38 ubuntu daemon: 系统时间:#011Sun Apr 26 02:06:38 2015#012#011#011
Apr 26 02:06:46 ubuntu daemon: 系统时间:#011Sun Apr 26 02:06:46 2015#012#011#011
Apr 26 02:06:54 ubuntu daemon: 系统时间:#011Sun Apr 26 02:06:54 2015#012#011#011
Apr 26 02:07:02 ubuntu daemon: 系统时间:#011Sun Apr 26 02:07:02 2015#012#011#011
Apr 26 02:07:10 ubuntu daemon: 系统时间:#011Sun Apr 26 02:07:10 2015#012#011#011
Apr 26 02:07:18 ubuntu daemon: 系统时间:#011Sun Apr 26 02:07:18 2015#012#011#011
Apr 26 02:07:26 ubuntu daemon: 系统时间:#011Sun Apr 26 02:07:26 2015#012#011#011
Apr 26 02:07:34 ubuntu daemon: 系统时间:#011Sun Apr 26 02:07:34 2015#012#011#011
Apr 26 02:07:42 ubuntu daemon: 系统时间:#011Sun Apr 26 02:07:42 2015#012#011#011
Apr 26 02:07:50 ubuntu daemon: 系统时间:#011Sun Apr 26 02:07:50 2015#012#011#011
- linux后台进程实例
- linux下创建后台守护进程实例
- Linux下后台守护进程的编写实例
- Linux下后台守护进程的编写实例
- ORACLE实例的后台进程
- ORACLE实例的后台进程
- linux 前台进程 后台进程
- Linux 后台服务进程
- linux进程后台管理
- Linux后台进程管理
- LINUX后台进程管理
- linux后台执行进程
- Linux后台进程管理
- linux 后台进程
- Linux 后台运行进程
- Linux后台运行进程
- Linux后台进程管理
- Linux后台进程管理
- 请学好C语言![转]
- 学计算机必读[转]
- realloc重分配内存详解
- Static用法总结
- C语言中的输入输出函数总结
- linux后台进程实例
- 关于C语言中return的一些总结
- C++中的内存管理(new、delete、内存泄漏)
- 编译器处理相关
- VC中结构体内存分配问题透析(sizeof)
- jQuery.Validate验证库
- C/C++程序员应聘常见面试题深入剖析
- 浅谈C/C++内存泄漏及检测工具(太强大了!)
- MS SQL Server查询优化方法