linux 后台运行命令 nohup命令
2017-11-05 20:42
561 查看
普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止。
要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过),比较麻烦;另一种方法是仍然用普通方法编程,然后用nohup命令启动程序: nohup <程序名> &
则控制台logout后,进程仍然继续运行,起到守护进程的作用(虽然它不是严格意义上的守护进程)。
使用nohup命令后,原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用,实现了完整的守护进程功能。
FreeBSD可以同时运行多个进程,在shell下直接输入命令后,shell将进程放到前台执行。如果要将进程放到后台执行,需要在命令行的结尾加上一个 “&” 符号。下面的命令从后台执行,从ftp.isc.org下载文件。
$ fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &
当程序已经在前台执行的时候,可以使用^Z将这个程序挂起,暂停执行。然后可以使用bg命令将这个挂起的程序放到后台执行,或者使用fg将某个在后台或挂起的进程放到前台执行。
当在后台运行了程序的时候,可以用jobs命令来查看后台作业的状态。在有多个后台程序时,要使用来参数的fg命令将不同序号的后台作业切换到前台上运行。
$ jobs
[1]+ Running fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &
$ fg %1
fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz
ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停
bg:将一个在后台暂停的命令,变成继续执行
bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
fg: 将后台中的命令调至前台继续运行
fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
fg、bg、jobs、&、 ctrl+z都是跟系统任务有关的,学会了相当的实用
nohup ./start-dishi.sh >output
2>&1 &
解释:
1. 带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上);
2. 2>&1的意思
这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。
有人会写成: nohup
./command.sh >output 2>output出错
因为>output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的.
相关文章推荐
- linux下nohup命令——让程序在远程主机后台运行
- linux 后台运行命令 nohup命令
- Linux后台运行命令 nohup command > myout.file 2>&1
- Linux 后台输入命令及后台运行程序 nohup 命令 小结
- linux 后台运行命令 nohup命令
- linux nohup命令使程序在后台运行的方法
- Linux nohup command &后台运行程序+前后台切换命令
- Linux下java nohup 后台运行关闭后进程停止的原因,不挂断后台运行命令
- nohup命令在linux系统,控制jar包后台运行
- Linux之nohup命令:实现退出终端后程序继续后台运行
- linux使用nohup命令后台运行程序
- linux后台运行&符号、nohup命令、输出重定向等使用方法
- 使用nohup让linux命令在后台运行
- Java程序以后台方式在Linux上运行(nohup命令)
- Linux让程序后台运行命令之screen与nohup
- linux nohup命令 在后台运行程序
- linux的nohup命令的用法。在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local
- linux 使程序在后台稳定运行 命令 nohup
- Linux命令之后台运行-nohup &
- 【转】Linux下nohup命令实现退出终端后程序继续后台运行