通常情况下,在 Linux 终端中运行命令时,我们必须等前一命令执行完成后,在输入并执行后一条命令,称之为在前台或前台进程中运行命令,进程在前台运行时,将占用您的外壳,并且您也可以使用输入设备与其终端进行交互。

当一条命令执行需要很长时间才能完成,并且想同时运行其他命令怎么办呢?

  • 第一:启动新的 Shell 会话并在其中运行命令;

  • 第二:在后台运行命令;

后台进程是从终端启动并在后台运行,无需用户与其终端进行交互的进程及命令;

1、组合键及命令
以 httpd-2.2.17.tar.gz 压缩包为例,比如一个压缩包文件解压需在终端屏幕下解压很长时间,甚至要刷很长一段屏幕才能解压完毕,那么我们可以按下Ctrl+Z组合键,便可以暂停运行并隐藏到后台,将会返回一个停止序号,此时进程时暂停的,并不会继续运行。

输入bg命令即可继续将该任务在后台执行。

输入fg + 序号命令即可让进程返回到前台执行。

执行过程中,可以输入jobs命令来查看所有的后台任务了。

# tar -zxf httpd-2.2.17.tar.gz                             ## 解压 httpd 压缩包^Z                                                         ## 按下 Ctrl+Z 组合键暂停[1]+  Stopped                 tar -zxf httpd-2.2.17.tar.gz# bg                                                       ## 输入 bg 命令,继续在后台运行[1]+ tar -zxf httpd-2.2.17.tar.gz &# jobs                                                     ## 查看所有的后台任务[1]+  Done                    tar -zxf httpd-2.2.17.tar.gz

2、&
在执行命令后加&,使其在终端后台运行。

# ./yum_install.sh &

执行完如上命令,yum脚本便在后台运行,虽然在后台运行了,但输出的内容还是会在终端上进行显示的,那么我们可以采用将执行后的命令输出结果重定向到文件中。

# ./yum_install.sh >> 202001141411out.txt 2>&1 &

将执行的结果重定向到202001141411out.txt文件中,2>&1将标准错误重定向到标准输出,判断yum脚本文件执行成功没成功,我们只需查看202001141411out.txt文件即可;

如果出现脚本文件执行了一段时间,卡死,无法继续运行了,可以通过第一种方法:jobs命令

# jobs -l

或者使用ps命令

# ps -aux | grep yum_install.sh

3、nohup
&:可以使命令在后台运行,当关闭控制台时,进程也将会被杀死,如果希望关闭控制台后,进程依旧运行,这时则需要使用nohup。

nohup:no hang up,不挂起的意思。

在执行命令最前面使用nohup,当关闭控制台时,进程依旧会在后台继续运行。

# nohup ./yum_install.sh &

如上nohup执行方式,当判断该脚本是否执行完毕,可执行命令ps -aux | grep yum_install.sh查看;

除此之外,我们可以将运行结果输出到nohup.log文件中,当没有指定输出重定向时,日志文件会默认输出到nohup.out文件;

# nohup ./yum_install.sh > nohup.log 2>&1 &

如果觉得这篇文章对你有所帮助,麻烦点个在看、留言、转发,支持一波,感谢!

PS:对了,公众号最近新上线了一个赞赏自动回复的新功能,开个赞赏体验一下,赞赏之后你将会收到一条回复消息,来试试看!

本公众号全部博文已整理成一个目录,请在公众号后台回复「m」获取!

©著作权归作者所有:来自51CTO博客作者mb5fe55acf14b1a的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Android如何打印std::cout/printf(重定向stdout)
  2. android 屏幕保护
  3. android 系统级别开发环境搭建 .
  4. Android开发环境搭建之Android(安卓)adb
  5. android java代码调用linux命令续
  6. RK PX30 make clean清android之后再次编译andriod报错
  7. Android系统中调试动态链接库.so文件的步骤
  8. Android(安卓)有关于* daemon not running.starting it now on p
  9. sqlite数据库简单查询命令

随机推荐

  1. Android(安卓)- 文件读写操作 总结
  2. android发现之旅之ViewRootImpl,Activity
  3. 谷歌推出新操作系统Andromeda,那Android真
  4. Android(安卓)Location服务之Geocoder
  5. Android USB状态监控(解决scheme="file")
  6. Android高手进阶教程(五)之----Android(
  7. Android夜间模式实现,通过在window上加一
  8. launcher修改--获取屏幕缩略(预览)图
  9. 加速Android(安卓)Studio/Gradle构建
  10. Android中的style&themes