Wednesday, May 1, 2024
 Popular · Latest · Hot · Upcoming
31
rated 0 times [  31] [ 0]  / answers: 1 / hits: 73926  / 2 Years ago, sat, july 16, 2022, 12:47:11

I want to have a process which will be restarted if it crashes. I googled a bit and found that an easy solution is to use daemontools.



I didn't understand how to configure it.




  1. What is the easiest way to acomplish such a functionality?

  2. How to configure it?


More From » services

 Answers
7

This answer applies to Ubuntu versions with Upstart (<= 14.10). Use another approach for versions with Systemd (>= 15.04).



It seems you're looking for a functionality already provided in Ubuntu with Upstart. The respawn stanza in the configuration will do exactly what you need. I would recommend against the use of a less standard way of dealing with this.



Without more details about the process you're trying to manage with it, it's hard to say what the configuration should look like. It depends on whether it forks and puts itself in the background for example. The Upstart documentation on the respawn stanza should give you more information.



Unfortunately, it's not yet possible to run User Jobs properly: cannot get upstart to run user job



Example



Let's assume we want to keep the Calculator app running, even when it's being killed with fire (signal 9).




  1. Create a configuration file in /etc/init/calculator.conf (based on this article):



    #!upstart
    description "Calculator"

    # Start job via the daemon control script. Replace "gert" with your username.
    exec su -l gert -c 'export DISPLAY=:0; /usr/bin/gnome-calculator'

    # Restart the process if it dies with a signal
    # or exit code not given by the 'normal exit' stanza.
    respawn

    # Give up if restart occurs 10 times in 90 seconds.
    respawn limit 10 90

  2. Start it by running



    sudo start calculator

  3. It opens on your current display (:0) and enjoy the awesomeness by seeing it restarting after closing it.




    • Identify the process ID, e.g. by doing ps aux | grep calculator:



      gert  13695 0.2 0.4 349744 16460 ?   Sl   13:38   0:00 /usr/bin/gnome-calculator

    • Kill it with fire.



      sudo kill -9 13695

    • Watch it reappearing:



      gert  16059 4.6 0.4 349736 16448 ?   Sl   13:40   0:00 /usr/bin/gnome-calculator




Note that this will be more elegant with the plans for the Ubuntu 13.04 plans with proper User Job support.


[#32832] Sunday, July 17, 2022, 2 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
ticeate

Total Points: 497
Total Questions: 128
Total Answers: 112

Location: Samoa
Member since Fri, Nov 27, 2020
4 Years ago
;