Linux 进程的前台/后台切换

2024-03-02 22:03:25 浏览数 (1)

前言

当你用shell启动一个程序时,往往他是在前台工作的。程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。 例如经常用连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行。

简单例子

在后台运行一个命令,例如使用&符号。

代码语言:javascript复制
./shella.sh &

使用jobs命令查看后台作业列表。

添加-l选项时,它提供更详细的输出,显示作业的详细信息。

代码语言:javascript复制
jobs

jobs -l

使用fg命令将某个作业切换到前台。例如,如果作业号为1。

代码语言:javascript复制
fg %1

使用(ctrl z)可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

代码语言:javascript复制
bg

使用bg将一个在后台暂停的命令,变成在后台继续执行。

代码语言:javascript复制
 kill %1

使用 kill %1可以直接终止后台运行的程序。

代码语言:javascript复制
nohup ./myscript.sh &

这个命令将执行./myscript.sh脚本,并且即使你退出当前终端,该脚本仍将继续在后台运行(利用psjobs等可以查看到)。

以防止其输出被挂断,nohup会将命令的输出追加到一个文件(默认为nohup.out)。

0 人点赞