MobaXterm 上 ssh 会话停止后的作业状态

MobaXterm 上 ssh 会话停止后的作业状态

我正在 MobaXterm 上的 Linux 中使用 rclone 同步将一些大型数据集复制到 google 驱动器。我提交的工作如下;

-cpu:~$ nohup rclone sync /path_to_source/. /path_to_destination &
 [1] 16310

当执行“jobs”查看作业状态时,它正在运行。

-cpu:~$jobs
[1]-  Running       nohup rclone sync /path_to_source `/path_to_destination &`

然而,也许几个小时后,会话会因某种原因停止;

Session stopped
    - Press <return> to exit tab
    - Press R to restart session
    - Press S to save terminal output to file

Server unexpectedly closed network connection

所以我重新启动会话,登录并执行“作业”,但没有显示任何内容。

-`cpu:~$jobs`
-`cpu:~$

我知道这项工作尚未完成,因为我使用了 nohup,而且当我运行上面相同的同步命令行时它仍在复制。

在我重新启动会话并使用“作业”后,为什么我看不到正在运行的作业?或者我怎样才能看到它,可能有工作ID,谢谢

答案1

内置jobs命令/实用程序/shell 仅列出与 shell 的当前会话关联的作业。这POSIX规范定义此行为:

描述

作业实用程序应显示在当前 shell 环境中启动的作业的状态;请参阅 Shell 执行环境。

当原始会话中断并且您重新连接到系统时,您最终会进入不同的会话(或不同的“Shell 执行环境”以避免混淆)。在这个新会话中,shell 将不会跟踪从上一个会话启动的作业。

由于您已经使用该nohup命令以及&操作符来使该命令后台运行,因此您应该仍然会看到它在系统上运行。运行ps -ef | grep rclone应该会显示运行过程。

相关质量检查:为什么 jobs 命令在 shell 脚本中不起作用?,命令“jobs”看不到停止的作业

相关内容