linux如何执行后台进程

linux直接执行一个过程。电流指令结束后。或者关闭掉shell形成过程将结束。

如何在后台执行的处理

办法1

采用nohup命令,nohup命令本身的意思no hung up他说,他们将不会收到shell关闭,封闭该过程。

使用nohup command &使得命令能够在后台执行。通过job -l能够看到后台执行的情况。

这里比較坑的地方是假设直接关闭掉shell,shell也会关闭掉这个后台的命令,退出shell须要先通过命令 exit然后在关闭才干在后台执行

方法2

利用脚本在后台执行,比方我要执行 mongod --dbpath="abc"启动mongodb。

先写一个脚本test.sh。里面内容能够是

#!/bin/sh

mongod --dbpath="abc"启动mongodb &

#这里&非常重要。否则无法退出当前命令。

然后直接执行test.sh。这个时候mongodb已经启动并执行了关闭shell也不会停止。问题来了,为什么会这样,网络上有人解释为

使用test.sh执行会马上结束,mongodb通过&号表示在后台执行。test.sh执行的父进程是当前shell进行。(查看shell进程号能够通过echo $$查看),test.sh执行结束,可是mongod却不会执行结束,test.sh会非常负责的将mongod托管给系统init进程。通过ps -ef|grep mongod能够看到mongod的父进程是1。

方法3

通过setsid直接将mongod的父进程设置为init进程

setsid  mongod --dbpath="abc"启动mongodb ,查看mongod进程发现其父进程是1.

參考文献:http://www.cnblogs.com/lwm-1988/archive/2011/08/20/2147299.html

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/lcchuguo/p/4887217.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值