在 Ubuntu Lucid 10.04 上后台运行 netcat

在 Ubuntu Lucid 10.04 上后台运行 netcat

我正在尝试从一台服务器执行 pg_dump 并同时在另一台服务器上恢复。

源服务器(192.168.3.94)上的命令:

pg_dumpall -v  | nc 192.168.3.95  4000

目标服务器(192.168.3.95)上的命令:

nc -l 4000 | psql mydb

现在我通过 Putty 从我的电脑上运行它。由于这个过程需要大约 5 个小时,我想将作业置于后台并关闭终端窗口。但我不知道如何将两个命令置于后台并退出 shell。

帮助!

答案1

我会使用 screen。如果您在 screen 会话中运行每一端,则可以将其分离 (Ctrl-d) 并在保持其运行的同时注销。

答案2

要启动一个在后台运行且与正在运行的 shell 分离的进程,您可以执行以下操作(使用您的示例):

(pg_dumpall -v  | nc 192.168.3.95  4000 &)

pstree在这里很有用,用于验证它是否已分离(或者ps -ejH如果你没有它)

答案3

确保在你的监听守护进程中包含‘-d’,我在使用 netcat 时遇到了问题,即使在监听模式下,也不会分叉,因为它需要 stdin。

相关内容