linux命令后台运行方法详解

发布时间:2020-04-17编辑:脚本学堂
本文介绍了linux命令后台运行的实现方法,介绍了nohup命令的用法,有需要的朋友参考下。

本节内容
linuxcmd/ target=_blank class=infotextkey>linux命令后台运行方法

1,在命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断。

2, 在后台执行的程序怎么使它恢复到前台来运行呢?很简单,只用执行fg这个命令,就可以了。

3,现在已经在前台运行的命令,我能把它放到后台去运行么?当然可以了,只要执行ctrl+z就可以做到了。是不是很赞啊!

4,如果我有多个进程在后台运行,那如何恢复到前台来执行呢?这时候就要用到jobs这个命令了,通过jobs这个命令,能够列出所有在后台执行的进程,那个中括号([ ])里面的数字就是 jobs 的代号啰 ,通过fg %number 就可以恢复指定的后台进程.

使用nohup让程序在远程主机后台运行

因为我购买的一个国外主机居然开放了Telnet权限,因此我也使用Telnet登录上去玩玩Linux,但发现一关闭窗口就自动和主机断开了,和Windows的终端不一样,所以就上网找啊找,找到了一个从后台一直运行某个程序的方法。

Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 &在程序结尾来让程序自动运行。比如我们要运行mysql在后台:

/usr/local/mysql/bin/mysqld_safe –user=mysql &

但是加入我们很多程序并不象mysqld一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 &结尾,但是如果终端关闭,那么程序也会被关闭。但是为了能够后台运行,那么我们就可以使用nohup这个命令,比如我们有个test.php需要在后台运行,并且希望在后台能够定期运行,那么就使用nohup:

nohup /root/test.php &

提示:

[~]$ appending output to nohup.out

嗯,证明运行成功,同时把程序运行的输出信息放到当前目录的 nohup.out 文件中去。

附:nohup命令参考

nohup 命令

用途:不挂断地运行命令。

语法:nohup Command [ Arg ... ] [ & ]

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 [...]

1. 后台运行的两个命令 &和 ctr+z

一开始就+“&”具体方法是: [命令]空格[&]

比如:

[root@pcmxexweb etc]# find / -name xml &

这样,这个查找程序就会在后台运行。它运行的同时不影响你干别的事情。

但是有的时候忘记了在命令之后加上‘&’符号,又不愿意停下此命令重新改写。这是可以按[ctrl+z],把当前程序切入后台。

[root@pcmxexweb etc]# find / -name xml

/etc/xml

/usr/lib64/python2.4/xml

/usr/share/vim/vim70/autoload/xml

/usr/share/hplip/data/xml

/usr/share/java-utils/xml

/usr/share/xml

/usr/share/doc/libvorbis-devel-1.1.2/xml

/usr/local/apache-tomcat-6.0.14/webapps/examples/jsp/xml

/webapp/web/jsp/xml

[root@pcmxexweb etc]# find / -name xml

/etc/xml

/usr/lib64/python2.4/xml

/usr/share/vim/vim70/autoload/xml

/usr/share/hplip/data/xml

/usr/share/java-utils/xml

/usr/share/xml

[1]+ Stopped find / -name xml

但是要注意此时在后台的这个程序是处于 Stopped 状态(注意看上面最后一行)。

用jobs查看下后台运行程序。

[root@pcmxexweb etc]# jobs

[1]- Stopped find / -name xml

[2]+ Stopped vi /etc/hosts

可以用命令bg 2。效果和一开始就用find / -name xml&是一样了,让此命令在后台运行了。

2.把后台程序调回前台

根据jobs的显示,配合使用fg 2 就把对应的程序调回前台了。