Skip to content

Run a process in background on Linux

1、最简单的方式

command &

例如:

top &

此时显示job编号和后台进程号

[1] 14814

2、前台运行的进程放入后台

Ctrl - Z

查看有哪些后台进程及状态

jobs

将后台进程切换到前台执行

fg <job编号>

让后台暂停的进程继续执行

bg <job编号>

杀死后台执行程序

kill %<job编号>

3、后台执行,关闭终端也不退出

例如一个不断输出程序test.sh,如下

while :
do
    echo hello
    sleep 1
done

希望关闭终端后继续执行

nohup ./test.sh &

默认程序输出在nohup.out文件中

退出终端重新登陆后查看该进程

ps aux | grep test.sh

杀死进程,使用kill + 进程号

4、借助screen完成

yum install screen
apt install screen

输入screen,进入一个新的虚拟终端,执行任务。

分离当前screen

<Ctrl> + <A>, <D>

查看所有后台终端

screen -list

还原刚刚关闭的终端

screen -r

Disclaimer
  1. License under CC BY-NC 4.0
  2. Copyright issue feedback: dig +short txt issue.imzye.com
  3. Not all the commands and scripts are tested in production environment, use at your own risk
  4. No privacy information is collected here
Buy Me a Coffee