红联Linux门户
Linux帮助

linux命令后台运行

发布时间:2011-06-15 21:21:50来源:Linux社区作者: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 就把对应的程序调回前台了。