Car*_*men 13 networking linux ssh
在服务器 A 上,我想通过 ssh 向服务器 B 发出以下命令。
service network stop
sleep 5
service network start
Run Code Online (Sandbox Code Playgroud)
问题是因为我发出了网络“停止”命令,然后我当前的 ssh 连接也丢失了。因此我无法执行后续命令(sleep 5 和 service network start)。请注意,我不能使用(服务网络重启)。
有没有人有解决方法/解决方案?
如果您以交互方式执行此操作,为什么不开始screen会话?它看起来像这样:
screen
Run Code Online (Sandbox Code Playgroud)
(屏幕外壳启动)
service network restart
Run Code Online (Sandbox Code Playgroud)
(SSH 会话断开,但网络重启在屏幕会话中继续)
(等待几秒钟)
(重启完成后通过 SSH 回到主机)
screen -r
Run Code Online (Sandbox Code Playgroud)
(重新连接到屏幕并检查错误)
恕我直言,远程重启网络接口总是很可怕。当它不回来时会发生什么?如果发生不好的事情,您是否有控制台或其他方式进入主机?
可用于执行此操作的确切命令因 Linux 发行版而异。一个非常标准的选项是在未来安排和“在”工作 5 秒以重新启动网络。另一种是使用nohup命令。
echo "sleep 5; /etc/init.d/networking start" | at now
nohup sh -c 'sleep 5; /etc/init.d/networking start' &
Run Code Online (Sandbox Code Playgroud)
其他发行版具有 daemon 命令,可将生成的程序转换为不再与 shell 关联的守护程序。
| 归档时间: |
|
| 查看次数: |
21734 次 |
| 最近记录: |