我正在 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
应该会显示运行过程。