Linux 后台执行脚本命令

本文介绍了在Linux系统中,如何使用&、ctrl+z、bg、fg和nohup等命令,灵活地将任务置于后台运行,以及如何将后台任务恢复到前台继续执行。这些技巧对于提高工作效率和资源利用至关重要。
摘要由CSDN通过智能技术生成

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

 

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

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

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

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

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

  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 就把对应的程序调回前台了。

 

总结:

将命令后台执行的方法有两种,①使用&符号,在执行命令的时候追加到命令的最后;②在没有使用&符号的情况下执行了命令后,可以先使用Ctrl + Z 将命令切换到后台,并配合使用 jobs 命令查看后台进程的唯一标识([这里是标识]),最后运行 bg 后台进程标识 命令,这样就可以让此命令在后台运行了,效果同①。

如果想将后台进程调回前台,则运行 fg 后台进程标识  命令就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值