在终端启动程序并让其在后台执行,可根据不同的使用场景,采用以下几种常见方法。
目录
方法一:使用 &
符号
在命令的末尾添加 &
符号,就能让程序在后台运行。例如,要让 ping
命令在后台持续向 www.example.com
发送网络请求,可这样操作:
ping www.example.com &
执行此命令后,程序会在后台运行,同时会返回一个作业号(Job ID)和进程 ID(PID)。可以使用 jobs
命令查看当前后台运行的作业,使用 fg
命令将后台作业调至前台,使用 kill
命令终止指定 PID 的进程。
方法二:使用 nohup
命令
nohup
命令可让程序在退出终端后仍能继续运行。它能忽略 SIGHUP
(挂起信号),防止程序因终端关闭而停止。示例如下:
nohup ping www.example.com &
执行上述命令后,程序的输出会被重定向到一个名为 nohup.out
的文件中。若想将输出重定向到其他文件,可使用如下命令:
nohup ping www.example.com > output.log 2>&1 &
这里,> output.log
表示将标准输出重定向到 output.log
文件,2>&1
表示将标准错误输出也重定向到与标准输出相同的位置。
方法三:使用 screen
命令
screen
是一个终端复用工具,它能创建多个虚拟终端会话,可以在这些会话间自由切换,也能断开和重新连接会话。使用步骤如下:
1.创建新的 screen
会话:
screen
2.在 screen
会话中启动程序:
ping www.example.com
3.暂时断开 screen
会话:
按下 Ctrl + A
,然后再按下 d
。此时程序会在后台继续运行。
4.重新连接 screen
会话:
screen -r
如果有多个 screen
会话,可使用 screen -ls
查看会话列表,再使用 screen -r <会话ID>
连接到指定会话。
方法四:使用 tmux
命令
tmux
也是一个强大的终端复用工具,功能与 screen
类似,但使用起来更加灵活。使用步骤如下:
1.创建新的 tmux
会话:
tmux new -s mysession
这里的 mysession
是会话的名称,可以自行定义。
2.在 tmux
会话中启动程序:
ping www.example.com
3.暂时断开 tmux
会话:
按下 Ctrl + B
,然后再按下 d
。
4.重新连接 tmux
会话:
tmux attach -t mysession
使用 tmux ls
可查看所有会话列表。
以上这些方法都能让程序在后台执行,可根据自身需求选择合适的方法。