前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux中的前台与后台运行

Linux中的前台与后台运行

作者头像
mwangblog
发布2018-08-02 15:51:48
1.4K0
发布2018-08-02 15:51:48
举报
文章被收录于专栏:mwangblogmwangblogmwangblog
事实上,在终端中如果对命令不加处理,那么命令会在前台运行。

然而有时候需要将编译、压缩等耗时的工作放到后台运行,这个时候只需要在命令末尾加上&即可。

$ tar -zcvf etc.tar.gz /etc > log.txt 2>&1 &
[1] 27914

Shell将命令放在后台运行,并返回了作业号1和进程号27914

需要注意的是,如果程序在后台运行,那么它将无法接受用户的输入,但是其输出将显示在屏幕上(可能用户正在进行其他工作,突然冒出了错误输出),因此在后台执行的程序需是不需要人工干预的、输出被妥善处理(比如重定向)的程序。

有的时候在程序开始运行之后,想要将程序放在后台执行,这时需要按^Z快捷键暂停程序,然后使用bg %作业号命令将其放入后台执行:

$ sleep 10
^Z
[1]+  Stopped                 sleep 10
$ jobs
[1]+  Stopped                 sleep 10
$ bg %1
[1]+ sleep 10 &
$ jobs
[1]+  Running                 sleep 10 &

可见,在按^Z后,程序进入暂停状态(Stopped),在将其放入后台后,程序继续执行(Running)。上面例子中jobs命令列出后台的程序。

当然,也可以使用fg %作业号将程序从后台移到前台:

$ jobs
[1]+  Running                 sleep 10 &
$ fg %1
sleep 10
$

最后,可以使用kill程序杀死背景中的程序:

$ kill -9 %1    # 强制结束工作号为1的程序
$ kill -15 %1   # 正常结束工作号为1的程序
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 mwangblog 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档