曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4717|回复: 0
打印 上一主题 下一主题

& 命令 -- 将作业放到后台去执行

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2010-2-5 18:37:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在前台运行一个作业,会占据着整个终端,此时你如果想进行另一个作业时,就需要考虑将一个作业放到后台去执行。放到后台执行的作业往往是一些费时的 find, 打印, 排序的程序或脚本。
需要用户交互的命令不要放在后台执行,因为这样就会让机器处于等待状态。
后台的作业仍然可能会将结果打印到屏幕上,从而干扰了现在正在进行的工作,这时可以将这个会产生大量输出的后台作业的输出结果重定向到某个文件中:
command >out.file 2>&1 &
上面的命令会将所有的输出结果包括错误输出重定向到 out.file 这个文件中。 2>&1 可以这么理解:2是标准错误,&1 则表示标准输出,将标准错误重定向到标准输出,而标准输出原本就是被重定向到 out.file 中的,所以这样一来标准错误也就被重定向到  out.file 中去了。
下面是个实际的命令:
linux-1o5y:~ # find /etc/ -name "passwd" -print >find.dt 2>&1 &
[1] 28686
执行了上面的命令,会得到这个作业的进程号,利用这个进程号可以 kill 掉这个后台进程。
当这个作业完成时,一般按下回车键,就会出现一个提示(然后就是 shell 命令行的输入提示符),如:
[1]+  Done                    find /etc/ -name "passwd" -print >find.dt 2>&1
输入回车键的原因是,我们希望让 shell 打印出命令行提示符。因为 shell 不会在随意的时间里打印出后台作业的状态改变信息,它仅在需要马上输出命令行提示符之前才会这么做。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-19 01:41 , Processed in 0.077060 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表