首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >EC2 ssh断开的管道终止正在运行的进程

EC2 ssh断开的管道终止正在运行的进程
EN

Stack Overflow用户
提问于 2016-06-14 02:05:02
回答 4查看 8.2K关注 0票数 8

我正在使用一个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‘被终止。

关于发生了什么以及我能做些什么来防止这种情况的发生,你有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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>
票数 17
EN

Stack Overflow用户

发布于 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
票数 3
EN

Stack Overflow用户

发布于 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通过防火墙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37796392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档