Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EC2 ssh broken pipe terminates running process

I'am using a EC2 instance to run a large job that I estimate to take approx 24 hours to complete. I get the same issue described here ssh broken pipe ec2

I followed the suggestion/solutions in the above post and in my ssh session shell I launched my python program by the following command:

nohup python myapplication.py > myprogram.out 2>myprogram.err

Once I did this the connection remained intact longer than if I didn't use the nohup but it eventually fails with broken pipe error and I'm back to square one. The process 'python myapplication.py' is terminated as a result.

Any ideas on what is happening and what I can do to prevent this from occuring?

like image 789
codingknob Avatar asked Jun 13 '16 18:06

codingknob


2 Answers

You should try screen.

Install

Ubuntu:

apt-get install screen

CentOS:

yum install screen

Usage

Start a new screen session by

$> screen

List all screen sessions you had created

$>screen -ls
There is a screen on:
        23340.pts-0.2yourserver    (Detached)
1 Socket in /var/run/screen/S-root.

Next, restore your screen

$> screen -R 23340
$> screen -R <screen-id>
like image 188
Blake Avatar answered Oct 03 '22 12:10

Blake


A simple solution is to send the process to the background by appending an ampersand & to your command:

nohup python myapplication.py > myprogram.out 2>myprogram.err &

The process will continue to run even if you close your SSH session. You can always check progress by grabbing the tail of your output files:

tail -n 20 myprogram.out
tail -n 20 myprogram.err
like image 36
Kevin L. Keys Avatar answered Oct 03 '22 14:10

Kevin L. Keys