我在 MobaXterm 上的 Linux 中使用 rclone sync 将一些大型数据集复制到谷歌驱动器。我提交的工作如下;
-cpu:~$ nohup rclone sync /path_to_source/. /path_to_destination &
[1] 16310
什么时候做“工作”来查看工作状态,它正在运行。
-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,谢谢
jobs
内置的command/utility/shell 仅列出与当前 shell 会话相关的作业。POSIX 规范定义了这种行为:当原始会话中断并且您重新连接到系统时,您最终会进入不同的会话(或不同的“Shell 执行环境”以避免混淆)。在这个新会话中,shell 不会跟踪从前一个会话开始的作业。
由于您已经使用该
nohup
命令和&
操作员将该命令置于后台,因此您应该仍然可以看到它在系统上运行。运行ps -ef | grep rclone
应该向您显示正在运行的过程。相关 QA:为什么 jobs 命令在 shell 脚本中不起作用?,命令“jobs”看不到停止的作业。