我正在使用一个EC2实例来运行一个大型作业,我估计大约需要24小时才能完成。我收到了这里描述的相同问题ssh broken pipe ec2
我遵循了上面帖子中的建议/解决方案,并在我的ssh会话shell中通过以下命令启动了我的python程序:
nohup python myapplication.py > myprogram.out 2>myprogram.err
一旦我这样做了,连接保持完好无损的时间比我不使用nohup
的时候更长,但最终broken pipe error
失败了,我又回到了原点。因此,进程'python myapplication.py
‘被终止。
关于发生了什么以及我能做些什么来防止这种情况的发生,你有什么想法吗?
发布于 2016-06-14 02:16:07
你应该试试screen
。
安装
Ubuntu:
apt-get install screen
CentOS:
yum install screen
用法
通过以下方式启动新的屏幕会话
$> screen
列出您创建的所有屏幕会话
$>screen -ls
There is a screen on:
23340.pts-0.2yourserver (Detached)
1 Socket in /var/run/screen/S-root.
下一步,恢复你的屏幕
$> screen -R 23340
$> screen -R <screen-id>
发布于 2018-08-13 04:31:46
一个简单的解决方案是将进程发送到后台,方法是在命令后附加一个与号&
:
nohup python myapplication.py > myprogram.out 2>myprogram.err &
即使您关闭了SSH会话,该进程仍将继续运行。您总是可以通过抓取输出文件的尾部来检查进度:
tail -n 20 myprogram.out
tail -n 20 myprogram.err
发布于 2019-04-01 20:34:03
实际上,我最终意外地用路由器配置修复了这个问题,允许所有ICMP数据包。我允许所有的ICMP数据包诊断一个奇怪的问题,一些网站随机加载缓慢,我注意到我的SSH终端不再死机。
我使用的是Ubiquiti EdgeRouter 4,所以我在https://community.ubnt.com/t5/EdgeRouter/EdgeRouter-GUI-Tutorial-Allow-ICMP-ping/td-p/1495130上遵循了这个指南
当然,您必须遵循您自己路由器的独特说明才能允许ICMP通过防火墙。
https://stackoverflow.com/questions/37796392
复制相似问题