美文网首页
centos7-守护进程

centos7-守护进程

作者: Fantast_d2be | 来源:发表于2020-06-09 23:29 被阅读0次

前台任务与后台任务

写一个简单node脚本server.js

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

上面这样启动的脚本,称为"前台任务"(foreground job)。它会独占命令行窗口,只有运行完了或者手动中止,才能执行其他命令。
并且一旦退出命令行窗口,这个应用就一起退出了,无法访问了。

后台任务

运行命令

node server.js & 

在命令的尾部加上符号&,启动的进程就会成为"后台任务"。

前后台任务切换

  • 后台切换成前台

查看当前后台任务

jobs

结果显示:

[1]+  Stopped                 node server.js

运行命令

fg 1

任务切换为前台。

  • 前台切换为后台
    可以先按ctrl + z,然后执行bg命令(让最近一个暂停的"后台任务"继续执行)。

SIGHUP信号

Linux系统SIGHUP信号设计

用户准备退出 session
系统向该 session 发出SIGHUP信号
session 将SIGHUP信号发给所有子进程
子进程收到SIGHUP信号后,自动退出

"后台任务"是否也会收到SIGHUP信号?这由 Shell 的huponexit参数决定的。

shopt | grep huponexit

执行上面的命令,就会看到huponexit参数的值。
大多数Linux系统,这个参数默认关闭(off)。因此"后台任务"不会随着 session 一起退出。

  • huponexit设置

将huponexit设置为off

shopt -u huponexit

将huponexit设置为on

 shopt -s huponexit

查看当前系统huponexit对应的值

shopt | grep onexit

当huponexit为on时,输入命令exit时后台任务会收到SIGHUP信号而退出。

守护进程

nohup

nohup 的用途就是让提交的命令忽略 hangup 信号。

nohup node server.js

标准输出和标准错误缺省会被重定向到 nohup.out 文件中。一般我们可在结尾加上"&"来将命令同时放入后台运行,也可用">filename 2>&1"来更改缺省的重定向文件名。

disown

使用disown 之后,会将把目标作业从作业列表中移除,我们将不能再使用jobs来查看它,但是依然能够用ps -ef查找到它。

node server.js
disown

disown用法

# 移出最近一个正在执行的后台任务
disown

# 移出所有正在执行的后台任务
disown -r

# 移出所有后台任务
disown -a

# 不移出后台任务,但是让它们不会收到SIGHUP信号
disown -h

# 根据jobId,移出指定的后台任务
disown %2
disown -h %2

相关文章

  • centos7-守护进程

    前台任务与后台任务 写一个简单node脚本server.js 前台任务 运行命令 上面这样启动的脚本,称为"前台任...

  • rsync服务企业应用

    守护进程服务企业应用: 守护进程多模块功能配置 守护进程的排除功能实践 守护进程来创建备份目录 守护进程的访问控制...

  • Python多进程

    守护进程 守护进程其实就是“子进程“是否伴随主进程一起结束:守护==>伴随,即守护进程会伴随主进程的代码运行完毕后...

  • 守护进程和守护线程详解

    守护进程 什么是守护进程? 守护进程会在主进程代码运行结束的情况下,立即挂掉。 守护进程本身就是一个子进程。 主进...

  • 4.5、守护进程及信号处理实战

    1、守护进程功能的实现守护进程融入项目,解放终端。相关配置:Daemon = 1;按照守护进程的方式运行守护进程如...

  • PHP创建守护进程

    PHP 创建守护进程 执行守护进程

  • forever

    start:启动守护进程stop:停止守护进程stopall:停止所有的forever进程restart:重启守护...

  • 进程守护进程

    什么是守护进程?Linux 的大多数服务器就是用守护进程实现的,使用ps -axj可以查看守护进程: 守护进程基本...

  • redis.conf详解之daemonize

    用法 作为非守护进程运行 作为守护进程运行 注意事项: 默认情况下,Redis不作为守护进程运行。如果以守护进程运...

  • 守护进程,互斥锁,队列,生产者消费者模型

    守护进程 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进...

网友评论

      本文标题:centos7-守护进程

      本文链接:https://www.haomeiwen.com/subject/lqagzhtx.html