背景
执行nohup command &
后,断开终端,执行jobs命令查看不到任务的原因,终于找到了。
首先执行完如下步骤:
1.nohup scp user@server:path/file localpath
2.输入密码
3.按Ctrl+Z挂起当前进程
4.使用命令bg让挂起的进程继续运行
然后断开终端,之后再重新打开终端,执行jobs命令查看不到任务。
分析原因如下
jobs 是查看当前终端的后台作业。
具体原因分析
jobs是查看当前后台作业(进程),是获取本次bash进程下子进程的后台作业。
当本次终端退出后,后台作业变成孤儿进程,孤儿进程有系统父进程接管。
当再次连接终端时,原作业与当前终端,不存在关系父子关系,故看不到进程。
但是原作业,会在系统中一致运行,直到完成或被停止。
这就是为什么终端退出后,jobs看不到的原因了。