在 Solaris 10 上使用 nohup

在 Solaris 10 上使用 nohup

我需要通过 SFTP(仅在 Solaris 服务器之间)传输大量文件,这需要很长时间。在此期间我无法让电脑保持开启状态。我试过:

nohup sftp server1

当 shell 打开时,我看到文件已下载。当我关闭外壳时它会停止。我ps -ef没有看到这个sftp过程。文件 nohup.out 声明:被信号 15 杀死

相反,如果我这样做ctrl-z,它就会起作用。然而这需要 bash shell;我怎样才能在 ksh 中做到这一点?bgdisown

答案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

  1. SFTP 正常
  2. Ctrl-z
  3. nohup -ga $(pgrep sftp)

答案3

如果您在 Solaris 下使用 ksh,则只需执行以下步骤:

% nohup 命令 > command.log 2>&1 &

如果退出 ksh 终端就可以了。

相关内容