linux如何在后台执行命令,如何在后台运行Linux命令?

微信公众号:杰哥的IT之旅(ID:Jake_Internet)

通常情况下,在 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」获取!

推荐阅读

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux后台执行命令,可以使用以下方法: 1. 使用&符号:在命令后面加上&符号,例如:command &。这样命令就会在后台执行,而不会阻塞终端。 2. 使用nohup命令:nohup命令可以让命令后台执行,并且不会受到终端关闭的影响。例如:nohup command &。 3. 使用screen命令:screen命令可以创建一个虚拟终端,可以在其中执行命令,并且可以在后台运行。例如:screen -S session_name,然后在其中执行命令。 无论使用哪种方法,在后台执行命令时,都可以使用jobs命令查看当前正在执行的后台任务,使用fg命令将任务调回前台,使用bg命令将任务放到后台继续执行。 ### 回答2: 在linux中,后台执行命令是一种非常有用的操作。它允许您在终端中并行运行多个命令,而不需要等待第一个命令运行完毕才能执行第二个命令。这种方式特别适合长时间运行且不需要用户交互的命令。下文将重点介绍如何在linux后台执行命令。 一、在命令行中使用 & 要在命令行中后台执行命令,只需要在命令的末尾添加 & 符号即可。例如,$command &。这样,该命令将在后台运行,并立即在终端中返回命令提示符。如果您没有在命令后添加&符号,则该命令将在前台运行,并且您必须等待该命令完成。 二、使用nohup命令 nohup命令是一个非常有用的命令,可以在没有用户交互的情况下在后台运行长时间运行的命令。nohup命令可以使用以下命令格式来运行命令:nohup command &。要使用nohup命令从终端运行命令时,将输出重定向到一个文件或将其强制发送到/dev/null。这样,即使用户退出终端,该命令也将继续运行。例如:$nohup command > output.txt &。 三、使用screen命令 screen命令是另一种在linux后台运行命令的强大方法。screen命令允许您创建一个虚拟终端,您可以在其中运行多个会话,并从一个会话切换到另一个会话。screen命令的语法非常简单:首先,输入screen命令来创建一个新的会话,然后输入要运行的命令。要在屏幕上运行命令,请按CTRL+A,然后按D键。命令将在后台运行。 总之,在linux中运行命令时,使用后台执行命令可以使您同时运行多个命令,并节省您的时间。无论您想要运行长时间的命令,想在没有用户交互的情况下运行命令,或者想使用虚拟终端运行并控制多个会话,linux提供了多种后台运行命令的选项,以满足您不同的需求。 ### 回答3: Linux中有许多方法可以在后台执行命令,下面将介绍常用的两种方式。 1.使用 & 符号 在Linux中,可以使用 & 符号将命令放在后台执行,例如: ``` ping www.baidu.com & ``` 在这个例子中,我们让ping命令后台执行,&符号告诉系统让这个命令后台运行。执行这个命令后,我们可以继续在终端中输入其他命令,如: ``` ls ``` 这样,我们可以在等待ping命令执行的同时,继续执行其他命令。在ping命令的执行过程中,我们可以通过jobs命令查看这个任务的状态,并通过fg命令将其切换到前台执行。 2.使用 nohup 命令 在一些情况下,我们需要在后台执行的命令需要长时间运行,而如果我们退出终端,这些命令也会随之终止。为了避免这个问题,我们可以使用nohup命令命令放在后台执行,例如: ``` nohup python app.py & ``` 在这个例子中,我们使用nohup命令执行了一个Python应用程序,&符号告诉系统让这个命令后台运行,而nohup命令则告诉系统在程序需要终止时,不要终止它。执行这个命令后,我们可以安全地关闭终端,程序将在后台继续运行。 总结 在Linux中,我们可以使用 & 符号或nohup命令命令放在后台执行。通过这些方法,我们可以在等待命令执行的同时,继续执行其他命令,或者让一些需要长时间运行的命令后台继续运行。需要注意的是,如果我们在执行命令时不关注它们是否在后台运行,可能会导致一些问题,因此应该时刻关注正在运行的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值