linux如何执行后台进程
2015-10-17 11:48
501 查看
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
如何在后台执行的处理
办法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
相关文章推荐
- Linux核心设计依据(六)该块I/O一层
- linux 常见服务端口有那些?
- ubuntu 下如何下载linux内核源码
- 对linux的根目录执行强制递归移除
- linux下的find文件查找命令与grep文件内容查找命令
- Centos7 JDK8安装配置
- linux wake_up
- Linux中ELF格式文件介绍
- Linux设备驱动--字符设备驱动程序2
- CentOS 7 yum安装路径查询方法
- Linux文件基础操作
- 非常简单清晰的子网划分知识
- linux公社 u-boot下载
- 浅析Linux 中Java环境变量设置
- 修改linux ulimit 限制
- Linux时间时区详解与常用时间函数
- Linux开机自启动服务
- Linux运行变量中的命名脚本
- Linux下安装ruby
- Linux 在一个命令行上执行多个命令