linux 如何后台运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 如何后台运行相关的知识,希望对你有一定的参考价值。

命令尾部加 &这个我知道,但是当你想退出终端端口时会出现“[1]。。。。stopped”的字样,这是不是意味着这个命令被中断了或停止了?如何能让Linux在后台运行,电脑终端还可以关闭!谢谢!

一般情况下关闭终端时,那么在这个终端中启动的后台程序也会终止,要使终端关闭后,后台程序保持执行,使用这个指令:
nohup test.sh &
参考技术A 在控制台运行环境的时候再命令后边加上&这个标志就可以了,Linux就可以在后台运行该任务。
在后台运行任务,表示在前台的Console中可以执行其他任务。
参考技术B 用 screen 命令

简单地说下
运行 screen
然后运行 你想要运行的程序
按 ctrl+a, d 暂时断开screen
--
screen -ls 查看刚才程序进程号
screen -r 进程号 重新回来

C-a ? 显示所有键绑定信息
C-a w 显示所有窗口列表
C-a C-a 切换到之前显示的窗口
C-a c 创建一个新的运行shell的窗口并切换到该窗口
C-a n 切换到下一个窗口
C-a p 切换到前一个窗口(与C-a n相对)
C-a 0..9 切换到窗口0..9
C-a a 发送 C-a到当前窗口
C-a d 暂时断开screen会话
C-a k 杀掉当前窗口
C-a [ 进入拷贝/回滚模式
参考技术C 所谓后台,指的是当前shell的后台,当你退出shell的时候,它当然会停止。
话说你想运行什么程序,运行后还要关闭终端。
要不你试试
ctrl+alt+f1运行程序,然后再alt+f7切换回来。
参考技术D 是否命令脚本中有界面输入要求?

如何高效的在后台运行 Linux 命令?

前言

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

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

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

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

一、组合键及命令

以 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
复制代码

二、&

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

# ./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
复制代码

三、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 &

以上是关于linux 如何后台运行的主要内容,如果未能解决你的问题,请参考以下文章

linux中如何把一个进程放在后台运行

如何把linux后台任务调到前台

linux如何设置程序开机启动后台运行?

linux后台运行jar程序

如何运行longlife后台进程,linux服务器

Linux下如何让某指令在后台一直运行