undefined

linux 守护进程的启动方法

http://www.ruanyifeng.com/blog/2016/02/linux-daemon.html

Linux下守护进程的启动方法

守护进程类似于内核进程一样,是一直在后台运行的进程。“前台任务”和“后台任务”的本质区别就是:是否继承了标准输入。

一、SIGHUP信号

用户退出session之后,“后台任务”是否还会继续,取决于一个参数。

  1. 用户准备退出session
  2. 系统向该 session 发送SIGHUP信号
  3. session将SIGHUP信号发送所有子进程
  4. 子进程收到SIGHUP信号后,自动退出
    因此,“前台进程”会随着session 的退出而退出。“后台进程”的退出由shell的 huponexit 参数决定。

shopt | grep huponexit

huponexit 的值为 off,代表session退出时,不会把 SIGHUP 信号发给“后台任务”。所以一般来说,后台任务不会随着session一起退出

二、disown命令

如果有的系统的 huponexit 参数是 on,那么就会随着session的退出而退出。

disown命令可以将指定的任务从“后台任务”列表中移除。这样session退出就不会给他发送SIGHUP信号了。

1
2
3
4
./process &
jobs -l
disown
jobs -l

可以查看到 process 进程被移出了“后台任务”。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 移出最近一个正在执行的后台任务
$ disown

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

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

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

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

但是disown 命令也是有小瑕疵的,如果后台进程和标准I/O有交互,“后台任务”的标准I/O继承当前的session,如果当前session退出之后,后台任务就不能与标准I/O进行交互。因此需要这样执行

1
2
./process 1>output.log 2>err.log </dev/null &
disown

三、nohup

nohup命令所做的事情

  1. 阻止SIGHUP信号发送到这个进程
  2. 关闭标准输入。该进程不再能够接收任何输入,即使运行在前台
  3. 重定向标准输入和标准错误到文件 nohup.out
    nohup ./process &

nohup 命令实际上将子进程与它所在的session分离了,但是还需要 & 符

四、其他

还有其他很多办法命令。

screen、tmux、systemd 等,后面补上。

http%3A%2F%2Fwww.ruanyifeng.com%2Fblog%2F2016%2F02%2Flinux-daemon.html%0A%0A%23%23%23%20Linux%E4%B8%8B%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E7%9A%84%E5%90%AF%E5%8A%A8%E6%96%B9%E6%B3%95%0A%0A%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E7%B1%BB%E4%BC%BC%E4%BA%8E%E5%86%85%E6%A0%B8%E8%BF%9B%E7%A8%8B%E4%B8%80%E6%A0%B7%EF%BC%8C%E6%98%AF%E4%B8%80%E7%9B%B4%E5%9C%A8%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C%E7%9A%84%E8%BF%9B%E7%A8%8B%E3%80%82%E2%80%9C%E5%89%8D%E5%8F%B0%E4%BB%BB%E5%8A%A1%E2%80%9D%E5%92%8C%E2%80%9C%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E2%80%9D%E7%9A%84%E6%9C%AC%E8%B4%A8%E5%8C%BA%E5%88%AB%E5%B0%B1%E6%98%AF%EF%BC%9A%E6%98%AF%E5%90%A6%E7%BB%A7%E6%89%BF%E4%BA%86%E6%A0%87%E5%87%86%E8%BE%93%E5%85%A5%E3%80%82%0A%0A%23%23%23%23%20%E4%B8%80%E3%80%81SIGHUP%E4%BF%A1%E5%8F%B7%0A%0A%E7%94%A8%E6%88%B7%E9%80%80%E5%87%BAsession%E4%B9%8B%E5%90%8E%EF%BC%8C%E2%80%9C%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E2%80%9D%E6%98%AF%E5%90%A6%E8%BF%98%E4%BC%9A%E7%BB%A7%E7%BB%AD%EF%BC%8C%E5%8F%96%E5%86%B3%E4%BA%8E%E4%B8%80%E4%B8%AA%E5%8F%82%E6%95%B0%E3%80%82%0A%0A1.%20%E7%94%A8%E6%88%B7%E5%87%86%E5%A4%87%E9%80%80%E5%87%BAsession%0A2.%20%E7%B3%BB%E7%BB%9F%E5%90%91%E8%AF%A5%20session%20%E5%8F%91%E9%80%81SIGHUP%E4%BF%A1%E5%8F%B7%0A3.%20session%E5%B0%86SIGHUP%E4%BF%A1%E5%8F%B7%E5%8F%91%E9%80%81%E6%89%80%E6%9C%89%E5%AD%90%E8%BF%9B%E7%A8%8B%0A4.%20%E5%AD%90%E8%BF%9B%E7%A8%8B%E6%94%B6%E5%88%B0SIGHUP%E4%BF%A1%E5%8F%B7%E5%90%8E%EF%BC%8C%E8%87%AA%E5%8A%A8%E9%80%80%E5%87%BA%0A%0A%E5%9B%A0%E6%AD%A4%EF%BC%8C%E2%80%9C%E5%89%8D%E5%8F%B0%E8%BF%9B%E7%A8%8B%E2%80%9D%E4%BC%9A%E9%9A%8F%E7%9D%80session%20%E7%9A%84%E9%80%80%E5%87%BA%E8%80%8C%E9%80%80%E5%87%BA%E3%80%82%E2%80%9C%E5%90%8E%E5%8F%B0%E8%BF%9B%E7%A8%8B%E2%80%9D%E7%9A%84%E9%80%80%E5%87%BA%E7%94%B1shell%E7%9A%84%20huponexit%20%E5%8F%82%E6%95%B0%E5%86%B3%E5%AE%9A%E3%80%82%0A%0A%60shopt%20%7C%20grep%20huponexit%60%0A%0Ahuponexit%20%E7%9A%84%E5%80%BC%E4%B8%BA%20off%EF%BC%8C%E4%BB%A3%E8%A1%A8session%E9%80%80%E5%87%BA%E6%97%B6%EF%BC%8C%E4%B8%8D%E4%BC%9A%E6%8A%8A%20SIGHUP%20%E4%BF%A1%E5%8F%B7%E5%8F%91%E7%BB%99%E2%80%9C%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E2%80%9D%E3%80%82%E6%89%80%E4%BB%A5%E4%B8%80%E8%88%AC%E6%9D%A5%E8%AF%B4%EF%BC%8C%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E4%B8%8D%E4%BC%9A%E9%9A%8F%E7%9D%80session%E4%B8%80%E8%B5%B7%E9%80%80%E5%87%BA%0A%0A%23%23%23%23%20%E4%BA%8C%E3%80%81disown%E5%91%BD%E4%BB%A4%0A%0A%E5%A6%82%E6%9E%9C%E6%9C%89%E7%9A%84%E7%B3%BB%E7%BB%9F%E7%9A%84%20huponexit%20%E5%8F%82%E6%95%B0%E6%98%AF%20on%EF%BC%8C%E9%82%A3%E4%B9%88%E5%B0%B1%E4%BC%9A%E9%9A%8F%E7%9D%80session%E7%9A%84%E9%80%80%E5%87%BA%E8%80%8C%E9%80%80%E5%87%BA%E3%80%82%0A%0Adisown%E5%91%BD%E4%BB%A4%E5%8F%AF%E4%BB%A5%E5%B0%86%E6%8C%87%E5%AE%9A%E7%9A%84%E4%BB%BB%E5%8A%A1%E4%BB%8E%E2%80%9C%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E2%80%9D%E5%88%97%E8%A1%A8%E4%B8%AD%E7%A7%BB%E9%99%A4%E3%80%82%E8%BF%99%E6%A0%B7session%E9%80%80%E5%87%BA%E5%B0%B1%E4%B8%8D%E4%BC%9A%E7%BB%99%E4%BB%96%E5%8F%91%E9%80%81SIGHUP%E4%BF%A1%E5%8F%B7%E4%BA%86%E3%80%82%0A%0A%60%60%60%0A.%2Fprocess%20%26%0Ajobs%20-l%0Adisown%0Ajobs%20-l%0A%60%60%60%0A%0A%E5%8F%AF%E4%BB%A5%E6%9F%A5%E7%9C%8B%E5%88%B0%20process%20%E8%BF%9B%E7%A8%8B%E8%A2%AB%E7%A7%BB%E5%87%BA%E4%BA%86%E2%80%9C%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E2%80%9D%E3%80%82%0A%0A%60%60%60%0A%23%20%E7%A7%BB%E5%87%BA%E6%9C%80%E8%BF%91%E4%B8%80%E4%B8%AA%E6%AD%A3%E5%9C%A8%E6%89%A7%E8%A1%8C%E7%9A%84%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%0A%24%20disown%0A%0A%23%20%E7%A7%BB%E5%87%BA%E6%89%80%E6%9C%89%E6%AD%A3%E5%9C%A8%E6%89%A7%E8%A1%8C%E7%9A%84%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%0A%24%20disown%20-r%0A%0A%23%20%E7%A7%BB%E5%87%BA%E6%89%80%E6%9C%89%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%0A%24%20disown%20-a%0A%0A%23%20%E4%B8%8D%E7%A7%BB%E5%87%BA%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%EF%BC%8C%E4%BD%86%E6%98%AF%E8%AE%A9%E5%AE%83%E4%BB%AC%E4%B8%8D%E4%BC%9A%E6%94%B6%E5%88%B0SIGHUP%E4%BF%A1%E5%8F%B7%0A%24%20disown%20-h%0A%0A%23%20%E6%A0%B9%E6%8D%AEjobId%EF%BC%8C%E7%A7%BB%E5%87%BA%E6%8C%87%E5%AE%9A%E7%9A%84%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%0A%24%20disown%20%252%0A%24%20disown%20-h%20%252%0A%60%60%60%0A%0A%E4%BD%86%E6%98%AFdisown%20%E5%91%BD%E4%BB%A4%E4%B9%9F%E6%98%AF%E6%9C%89%E5%B0%8F%E7%91%95%E7%96%B5%E7%9A%84%EF%BC%8C%E5%A6%82%E6%9E%9C%E5%90%8E%E5%8F%B0%E8%BF%9B%E7%A8%8B%E5%92%8C%E6%A0%87%E5%87%86I%2FO%E6%9C%89%E4%BA%A4%E4%BA%92%EF%BC%8C%E2%80%9C%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E2%80%9D%E7%9A%84%E6%A0%87%E5%87%86I%2FO%E7%BB%A7%E6%89%BF%E5%BD%93%E5%89%8D%E7%9A%84session%EF%BC%8C%E5%A6%82%E6%9E%9C%E5%BD%93%E5%89%8Dsession%E9%80%80%E5%87%BA%E4%B9%8B%E5%90%8E%EF%BC%8C%E5%90%8E%E5%8F%B0%E4%BB%BB%E5%8A%A1%E5%B0%B1%E4%B8%8D%E8%83%BD%E4%B8%8E%E6%A0%87%E5%87%86I%2FO%E8%BF%9B%E8%A1%8C%E4%BA%A4%E4%BA%92%E3%80%82%E5%9B%A0%E6%AD%A4%E9%9C%80%E8%A6%81%E8%BF%99%E6%A0%B7%E6%89%A7%E8%A1%8C%0A%0A%60%60%60%0A.%2Fprocess%201%3Eoutput.log%202%3Eerr.log%20%3C%2Fdev%2Fnull%20%26%0Adisown%0A%60%60%60%0A%0A%23%23%23%23%20%E4%B8%89%E3%80%81nohup%0A%0Anohup%E5%91%BD%E4%BB%A4%E6%89%80%E5%81%9A%E7%9A%84%E4%BA%8B%E6%83%85%0A%0A1.%20%E9%98%BB%E6%AD%A2SIGHUP%E4%BF%A1%E5%8F%B7%E5%8F%91%E9%80%81%E5%88%B0%E8%BF%99%E4%B8%AA%E8%BF%9B%E7%A8%8B%0A2.%20%E5%85%B3%E9%97%AD%E6%A0%87%E5%87%86%E8%BE%93%E5%85%A5%E3%80%82%E8%AF%A5%E8%BF%9B%E7%A8%8B%E4%B8%8D%E5%86%8D%E8%83%BD%E5%A4%9F%E6%8E%A5%E6%94%B6%E4%BB%BB%E4%BD%95%E8%BE%93%E5%85%A5%EF%BC%8C%E5%8D%B3%E4%BD%BF%E8%BF%90%E8%A1%8C%E5%9C%A8%E5%89%8D%E5%8F%B0%0A3.%20%E9%87%8D%E5%AE%9A%E5%90%91%E6%A0%87%E5%87%86%E8%BE%93%E5%85%A5%E5%92%8C%E6%A0%87%E5%87%86%E9%94%99%E8%AF%AF%E5%88%B0%E6%96%87%E4%BB%B6%20nohup.out%0A%0A%60nohup%20.%2Fprocess%20%26%60%0A%0Anohup%20%E5%91%BD%E4%BB%A4%E5%AE%9E%E9%99%85%E4%B8%8A%E5%B0%86%E5%AD%90%E8%BF%9B%E7%A8%8B%E4%B8%8E%E5%AE%83%E6%89%80%E5%9C%A8%E7%9A%84session%E5%88%86%E7%A6%BB%E4%BA%86%EF%BC%8C%E4%BD%86%E6%98%AF%E8%BF%98%E9%9C%80%E8%A6%81%20%26%20%E7%AC%A6%0A%0A%23%23%23%23%20%E5%9B%9B%E3%80%81%E5%85%B6%E4%BB%96%0A%0A%E8%BF%98%E6%9C%89%E5%85%B6%E4%BB%96%E5%BE%88%E5%A4%9A%E5%8A%9E%E6%B3%95%E5%91%BD%E4%BB%A4%E3%80%82%0A%0Ascreen%E3%80%81tmux%E3%80%81systemd%20%E7%AD%89%EF%BC%8C%E5%90%8E%E9%9D%A2%E8%A1%A5%E4%B8%8A%E3%80%82