我需要通过 SFTP(仅在 Solaris 服务器之间)传输大量文件,这需要很长时间。在此期间我无法让电脑保持开启状态。我试过:
nohup sftp server1
当 shell 打开时,我看到文件已下载。当我关闭外壳时它会停止。我ps -ef
没有看到这个sftp
过程。文件 nohup.out 声明:被信号 15 杀死
相反,如果我这样做ctrl-z,它就会起作用。然而这需要 bash shell;我怎样才能在 ksh 中做到这一点?bg
disown
答案1
您也可以在 ksh 中执行 Ctrl+Z, bg
, 。disown
除了 之外,您还希望nohup
,即
nohup sftp server1
...
<Ctrl+Z>
bg
disown
不过我在这里的建议是使用屏幕。在 OpenSolaris 中,它位于SUNWscreen
软件包中。 Run screen
,在新的虚拟终端中启动 shell。在该 shell 内运行sftp server
(您也可以直接运行screen sftp server
)。启动传输,然后键入Ctrl+A D以断开(“分离”)与屏幕会话的连接。会话内的进程将继续运行。稍后,您可以使用 重新连接到该屏幕会话screen -rd
。
答案2
- SFTP 正常
- Ctrl-z
nohup -ga $(pgrep sftp)
答案3
如果您在 Solaris 下使用 ksh,则只需执行以下步骤:
% nohup 命令 > command.log 2>&1 &
如果退出 ksh 终端就可以了。