Restart python script automatically even when it crashes in Linux

0 votes

I have a python program that has to be running all the time. If for some reason it was stopped I want to restart it automatically. I thought of having a cron that will run every n number of seconds and check the program is running. My shell script is looks like this:

#!/usr/bin/env bash
CM_COMMAND=`ps aux| grep abc| grep def| grep sudo`
LEN_COMMAND=${#CM_COMMAND}
if[["$LEN_COMMAND" -le "5"]] 
then
    echo "start the python program"
fi
exit

When I run this script I am getting the error: my_prog.sh: line 4: $'if[[118\r -le 5]]\r': command not found'

What is the alternative of doing this and what is the problem with my script?

Sep 21, 2018 in Python by bug_seeker
• 15,520 points
3,693 views

1 answer to this question.

0 votes

Maybe this would be more robust?

1) save the PID of your process when you start it with:

{your_python_command} & echo $! >>/{some_folder}/your_app.pid

2) This script will check and restart if it can't find the PID..

#!/usr/bin/env bash

PID=`cat /{some_folder}/your_app.pid`

if ! ps -p $PID > /dev/null
then
  rm /{some_folder}/your_app.pid
  {your_python_command} & echo $! >>/{some_folder}/your_app.pid
fi

3) To add it to a cronjob:

crontab -e

choose your text editor and add this row at the end of the file:

*/1 * * * * /{your_path}/{your_script_name}

exit and save

(this will run the script every minute, check crontab manual to set your exact interval)

answered Sep 21, 2018 by Priyaj
• 58,090 points

Related Questions In Python

0 votes
1 answer

Is it possible to print all the modules imported in a python script?

Since I am using Python 3.6, I ...READ MORE

answered Jul 3, 2019 in Python by Neel
• 3,020 points
2,835 views
+4 votes
7 answers
+1 vote
7 answers
0 votes
1 answer

External command in Python

you can check the subprocess module in ...READ MORE

answered Oct 1, 2018 in Python by SDeb
• 13,300 points
422 views
0 votes
1 answer
0 votes
1 answer

Script file name in a Bash script

$0 will give you the complete basename. ...READ MORE

answered Jun 20, 2019 in Linux Administration by Shubham
• 13,490 points
530 views
0 votes
1 answer

How to call an external command?

Look at the subprocess module in the standard library: import ...READ MORE

answered Nov 19, 2020 in Python by Gitika
• 65,910 points
356 views
0 votes
1 answer

Restart python script automatically even when it crashes in Linux

Maybe this would be more robust? 1) save ...READ MORE

answered Sep 11, 2018 in Python by Priyaj
• 58,090 points
2,760 views
0 votes
2 answers

How do play audio (playsound) in background of Python script?

There’s an optional second argument, block, which ...READ MORE

answered Jun 8, 2019 in Python by anonymous
26,783 views
webinar REGISTER FOR FREE WEBINAR X
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP