虹口高端网站建设,自在源码网,网站怎么做自己站长,西部数码域名怎么样转载#xff1a;守护进程 其实#xff0c;linux提供了daemon函数用于创建守护进程#xff0c;实现原理与上文中介绍的是一样的。
#include
int daemon(int nochdir, int noclose);
1#xff0e; daemon()函数主要用于希望脱离控制台#xff0c;以守护进程形式在后台运行…转载守护进程 其实linux提供了daemon函数用于创建守护进程实现原理与上文中介绍的是一样的。
#include
int daemon(int nochdir, int noclose);
1 daemon()函数主要用于希望脱离控制台以守护进程形式在后台运行的程序。
2 当nochdir为0时daemon将更改进城的根目录为root(“/”)。
3 当noclose为0是daemon将进城的STDIN, STDOUT, STDERR都重定向到/dev/null。 daemon的实现大致如下
int daemon( int nochdir, int noclose ) { pid_t pid; if ( !nochdir chdir(/) ! 0 ) //如果nochdir0,那么改变到/根目录 return -1; if ( !noclose ) //如果没有noclose标志 { int fd open(/dev/null, O_RDWR); if ( fd 0 ) return -1; /* 重定向标准输入、输出、错误 到/dev/null
键盘的输入将对进程无任何影响进程的输出也不会输出到终端
*/
dup(fd, 0);
dup(fd, 1);
dup(fd, 2);
close(fd);
} pid fork(); //创建子进程. if (pid 0) //失败 return -1; if (pid 0) _exit(0); //返回执行的是父进程,那么父进程退出,让子进程变成真正的孤儿进程.
//创建的 daemon子进程执行到这里了 if ( setsid() 0 ) //创建新的会话并使得子进程成为新会话的领头进程 return -1; return 0; //成功创建daemon子进程 } 使用实例
int main()
{ daemon(1, 1) //参数根据需求确定 /* 在这里添加你需要在后台做的工作代码 */
}
如何杀死这样的进程
通过psgrep找到对应的后台进程使用kill命令将进程杀死也可创建shell脚本对进程的启动、关闭、重启进行自动管理参考下文
http://blog168.chinaunix.net/space.php?uid20196318doblogid28824