Linux 守护进程的启动方法 - 易启发资源网

Linux 守护进程的启动方法

作者: 易启发

全网最全的网络资源分享网站

手机扫码查看

标签:

Linux守护进程

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

广告位

"守护进程"(daemon)就是一直在后台运行的进程(daemon)。

本文介绍如何将一个 Web 应用,启动为守护进程。

bg2015120901.png

一、问题的由来

Web应用写好后,下一件事就是启动,让它一直在后台运行。

这并不容易。举例来说,下面是一个最简单的Node应用server.js,只有6行。


var http = require('http');

http.createServer(function(req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World');
}).listen(5000);

你在命令行下启动它。


$ node server.js

看上去一切正常,所有人都能快乐地访问 5000 端口了。但是,一旦你退出命令行窗口,这个应用就一起退出了,无法访问了。

怎么才能让它变成系统的守护进程(daemon),成为一种服务(service),一直在那里运行呢?

二、前台任务与后台任务

上面这样启动的脚本,称为"前台任务"(foreground job)。它会独占命令行窗口,只有运行完了或者手动中止,才能执行其他命令。

变成守护进程的第一步,就是把它改成"后台任务"(background job)。


$ node server.js &

只要在命令的尾部加上符号&,启动的进程就会成为"后台任务"。如果要让正在运行的"前台任务"变为"后台任务",可以先按ctrl + z,然后执行bg命令(让最近一个暂停的"后台任务"继续执行)。

"后台任务"有两个特点。

  1. 继承当前 session (对话)的标准输出(stdout)和标准错误(stderr)。因此,后台任务的所有输出依然会同步地在命令行下显示。
  2. 不再继承当前 session 的标准输入(stdin)。你无法向这个任务输入指令了。如果它试图读取标准输入,就会暂停执行(halt)。

可以看到,"后台任务"与"前台任务"的本质区别只有一个:是否继承标准输入。所以,执行后台任务的同时,用户还可以输入其他命令。

  • 分享到:
    打赏
    未经允许不得转载:

    作者: 易启发, 转载或复制请以 超链接形式 并注明出处 易启发资源网
    原文地址: 《Linux 守护进程的启动方法》 发布于2020-2-14
    百度[百度已收录] 360[360未收录] 搜狗[搜狗已收录]

    评论

    切换注册

    登录

    忘记密码?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册

    Linux 守护进程的启动方法

    长按图片转发给朋友

    觉得文章有用就打赏一下文章作者

    支付宝扫一扫打赏

    微信扫一扫打赏