linux服务器- 如何写后台进程

区别于浏览器等展示性程序,运行于Linux系统上的网络服务器进程不需要前台展示,只需后台运行。此类进程即为Daemon进程(又叫精灵进程)。如Mysqld,Apached等。

Daemon进程实际为父进程fork()出来的子进程。但是会断开与控制终端的联系。

方法一:使用C系统函数daemon。

系统函数daemon可以使进程脱离控制终端,在系统后台以系统daemon的方式运行。

#include <unistd.h>
int daemon(int nochdir, int  noclose);
//nochdir:如果该参数值为0,则讲进程的当前路径修改为跟路径“/”。否则不变。
//noclose:如果该参数值为0,则重定向标准输入,标准输出,标准出错到系统空洞设备/dev/null(此时,进程不会向文件描述符1和2输出信息,也不会从0接收输入)。否则不做改变。
直接调用daemon函数,是最简单的写出后台进程的方法。

方法二:自己实现daemon函数。

int daemon_my(int nochdir, int noclose)
{
    //Clear file creation mask
    umask(0);

    //Get maximum number of file descriptors.
    struct rlimit rl;
    if(getrlimit(RLIMIT_NOFILE, &rl) < 0)
        return -1;

    pid_t pid;
    if((pid&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值