怎样写守护进程?
来源:互联网 发布:淘宝客api推广 编辑:程序博客网 时间:2024/09/21 09:00
1、脱离控制终端tty,让父进程为init();
先处于游离状态,用init()控制,脱离方式:用fork()建立进程,把父进程关闭。
2、禁止进程重新打开控制终端
3、关闭打开的文件描述符。
文件描述符的大小在: cd /proc/sys/fs中,cat file-max得到最大文件描述符。然后for循环关闭。
4、改变当前的工作目录
进程活动时,其工作目录所在的文件系统不能卸下。一般需将工作目录更改为根目录chdir();
5、重设文件创建的掩码
umask(0000);
下面用代码来描述以上5步。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
int main(int argc, char *argv[])
{
int i;
int fd;
char *ptr="hello world";
//1.creat a child process
pid_t pid=fork();
//2.exit parent
if(pid<0)
exit(1);
else if(pid>0)
exit(0);
//set new session
setsid();
//3.close all fd
for(i=0;i<49265;i++)
{
close(i);
}
//4.chage dir
chdir("/");
//5.umask
umask(0);
while(1)
{
fd=open("/tmp/jia.log",O_CREAT|O_RDWR|O_APPEND,0666);
if(fd>0)
{
write(fd,ptr,strlen(ptr));
close(fd);
}
sleep(3);
}
return 0;
}
当执行可执行文件后,进程一直存在。但是系统关闭后,进程才消亡。
想要守护进程一直运行,可将可执行程序的路径添加到/etc/init.d下的rc文件中。
- 怎样写守护进程?
- 写守护进程daemon
- linux 怎样生成守护进程
- 用shell写守护进程
- 用shell写守护进程
- windows 下 写守护进程
- 用管道写守护进程
- C#写进程守护程序
- 守护进程Daemon是怎样练成的!
- [转]C语言写监控守护进程
- Solaris下shell写的守护进程
- C语言写监控守护进程
- [转]C语言写监控守护进程
- 怎么写一个简单的守护进程
- C语言写监控守护进程
- 如何写好一个守护进程
- 用PHP写一个Daemon守护进程
- php写守护进程(Daemon)
- 关于IplImage与Mat之间的转换
- c++基础之封装下
- win10系统下帝国时代罗马复兴修改流程
- ubuntu 使用笔记170402
- Android视图SurfaceView的实现原理分析
- 怎样写守护进程?
- 【问题解决】模板的声明和实现分别放置
- 【mysql】 在 centos 上 使用 tar.gz 安装
- 1、Linux编程规范-C Coding Standard
- treeList勾选已经保存的树值
- JavaScript 函数
- DEV ImageComboBoxItem 绑定数据
- HTTP协议
- JAVASE猜拳小游戏源代码