写入失败:管道损坏

Gar*_*tet 42 ssh terminal

我有一个无头的Ubuntu服务器.我在Mac上通过SSH在服务器上运行命令(snapraid sync).该命令表示需要大约6小时,所以我把它留了一夜.

当我今天早上下来时,Mac上的终端说:"写失败:破管"

我不确定命令是否完全执行.这是超时问题吗?如果是这样,我怎样才能在一夜之间保持SSH连接活着?

jer*_*ran 48

这应解决Mac OSX版本的问题:10.8.2

加:

ServerAliveInterval 120
TCPKeepAlive no
Run Code Online (Sandbox Code Playgroud)

到这个文件:

~/.ssh/config
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望它是SSH客户端的全局更改,请转到此文件

/私人的/ etc/ssh_config中

"ServerAliveInterval 120"基本上表示每120秒使用一个NULL数据包"ping"服务器,而"TCPKeepAlive no"表示不设置SO_KEEPALIVE套接字选项(因为你不需要它已经设置了ServerAliveInterval,显然它是"可欺骗的" "或者有些奇怪的."

服务器同样具有可以为相同效果设置的内容(ClientKeepAliveInterval),但通常您无法控制这些设置.


gum*_*ins 22

您可以使用"screen"util.只需通过SSH连接到服务器,通过"screen"命令执行启动屏幕会话,在那里启动命令并断开连接(不要退出屏幕会话).当您认为您的命令已经完成时,您可以连接到服务器并附加到您可以看到命令执行结果/进度的屏幕会话(如果应该是这样).

有关详细信息,请参阅"man screen".

  • +1技术上不能解决问题,但可能是用户的更好解决方案. (4认同)
  • 这是一个很好的[分步指南](http://www.howtogeek.com/howto/ubuntu/keep-your-ssh-session-running-when-you-disconnect/) (2认同)

小智 6

这应该解决ubuntu和linux mint添加的问题:

ServerAliveInterval 120
TCPKeepAlive yes
Run Code Online (Sandbox Code Playgroud)

到/ etc/ssh/ssh_config文件