执行jobs命令查看不到任务的原因终于找到了

2,196 阅读1分钟

背景

执行nohup command &后,断开终端,执行jobs命令查看不到任务的原因,终于找到了。

首先执行完如下步骤:

1.nohup scp user@server:path/file localpath

2.输入密码

3.按Ctrl+Z挂起当前进程

4.使用命令bg让挂起的进程继续运行

然后断开终端,之后再重新打开终端,执行jobs命令查看不到任务。

分析原因如下

jobs 是查看当前终端的后台作业。

具体原因分析

jobs是查看当前后台作业(进程),是获取本次bash进程下子进程的后台作业。

当本次终端退出后,后台作业变成孤儿进程,孤儿进程有系统父进程接管。

当再次连接终端时,原作业与当前终端,不存在关系父子关系,故看不到进程。

但是原作业,会在系统中一致运行,直到完成或被停止。

这就是为什么终端退出后,jobs看不到的原因了。