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

时间: 2024-11-09 06:16:33

linux如何后台运行进程的相关文章

linux如何后台运行进程,而且不随终端关闭而关闭

参考:http://www.cnblogs.com/kaituorensheng/p/3980334.html 使用命令nohup:no hang up,表示关闭终端后,进程并不随着终端关闭而关闭 fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本 二.ctrl + z 可以将一个正在前台执行的命令放到后台,并

linux程序后台运行

linux命令后台运行  有两种方式: 1. command & : 后台运行,你关掉终端会停止运行   2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介     Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和bg 命令,让你轻松

Linux下后台运行任务

http://www.cnblogs.com/xianghang123/archive/2011/08/02/2125511.html http://blog.csdn.net/u012700515/article/details/27113313 http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/ 将一个正在运行的任务放到后台,并且关机后任能运行 ctrl+z jobs #查找jobs的id disown -h %num #num为jo

linux jar 后台运行

在linux系统中可以利用nohup来执行任何命令,并把命令自动调到linux后台运行,不锁定当前ssh窗口,也不会被ctrl + c,alt + F4之类打断程序的动行.如: nohup java -jar server.jar & 详细参考:http://www.2cto.com/os/201301/185701.html linux jar 后台运行

关于linux后台运行进程如何屏蔽ctrl+z

近日遇到shell后台启动进程,输入ctrl+z被挂起的问题 具体描述如下: 1.现有两个shell脚本,grandfather.sh和father.sh,两个C++程序son1和son2,其中son1为普通程序,son2使用occi连接oracle数据库 调用关系为 2.Father.sh启动son1和son2后,退出到Grandfather.sh,此时在Grandfather.sh中安ctrl+z后,使用ps aux查看son1和son2的进程状态分别为T和S 3.个人认为,既然Father

linux 后台运行进程 fg bg ctrl+z

fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本 二.ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态. 三.jobs 查看当前有多少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated.但是如果任务被

linux中mongodb在后台运行进程

# 方法1:(推荐)# --fork 选项将会通知 mongod 在后台运行/path/to/MongoDB_Dir/bin/mongod --logpath /path/to/file.log --logappend --fork # 方法2:# 将输出重定向到 file.log 文件# & 将该进程置于后台运行/path/to/MongoDB_Dir/bin/mongod >> /path/to/file.log & # 还可以这样运行(不记录日志)# 因为所有重定向到位桶

linux命令后台运行

1.在下达的命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断. 2. 那大家可能又要问了,在后台执行的程序怎么使它恢复到前台来运行呢?很简单,只用执行fg这个命令,就可以了. 3.可能有些同学又要问了,我现在已经在前台运行的命令,我能把它放到后台去运行么?当然可以了,只要执行ctrl+z就可以做到了.是不是很赞啊! 4.说到这里可能有些同学又要问了,如果我有多个进程在后台运行,那如何恢复到前台来执行呢?这时候就要用到jobs这个命令了,通过j

【转】使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)

一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关机不影响日本那边的程序运行.(不会像以前那样,我们这网络一断开,或一关机,程序就断掉或找不到数据,跑了几天的程序只能重头再来,很是烦恼) 2:不影响计算效率 2:让程序在后台跑后,不会占据终端,我们可以用终端做别的事情. 二.怎么样使程序在后台执行 方法有很多,这里主要列举两种.假如我们有程序pso