使用 SSH 停止服务会导致“Control master 意外终止”

问题描述 投票:0回答:1

我有两台运行 Centos 7 的服务器,可以相互通信。在 shell 脚本中,我需要通过 ssh 停止在另一个节点上运行的自定义服务。问题是,有时整个 ssh 会话会以退出代码 255 关闭。我没有任何解释,甚至无法重新创建类似的情况来进行更多调查。我将不胜感激任何有用的想法。

错误:

[root@server1 ~]# ssh server2
[root@server2 ~]# ssh -vvv -tt server1 "systemctl stop myservice"
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for server1
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_forwards: request forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_client_request_alive: done pid = 5429
debug3: mux_client_request_session: session request sent
debug1: mux_client_request_session: master session id: 2
debug3: mux_client_read_packet: read header failed: Broken pipe
debug2: Control master terminated unexpectedly
Shared connection to server2 closed.
[root@server1 ~]# echo $?
255
linux ssh service systemctl
1个回答
0
投票

ssh被其他进程(例如scp)执行后失败,返回错误值255。

https://www.microfocus.com/documentation/rsit-server-client-unix/8-4-0/unix-guide/ssh_exit_ap.html

现在,让我们看看您的输出:

[root@server1 ~]# ssh server2
[root@server2 ~]# ssh -vvv -tt server1 "systemctl stop myservice"
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for server1
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_forwards: request forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_client_request_alive: done pid = 5429
debug3: mux_client_request_session: session request sent
debug1: mux_client_request_session: master session id: 2
debug3: mux_client_read_packet: read header failed: Broken pipe
debug2: Control master terminated unexpectedly
Shared connection to server2 closed.
[root@server1 ~]# echo $?
255

主节点可能会因多种可能的原因而意外终止。如果收到请求的响应太慢,则可能会出现超时。或者可能是您停止了某项服务,这可能就是原因。

尽管如此,您可以增加超时限制并查看问题是否仍然存在:https://github.com/ansible/ansible/issues/26359#issuecomment-316004134

如果脚本损坏,您可以修改脚本以重新连接。

© www.soinside.com 2019 - 2024. All rights reserved.