[Toolserver-l] making sure your bots are always running: introducing phoenix

John Vandenberg jayvdb at gmail.com
Fri Oct 17 22:48:06 UTC 2008


On Sat, Oct 18, 2008 at 7:26 AM, Daniel Kinzler <daniel at brightbyte.de> wrote:
> Hi all
>
> We have all seen the problem that some script or bot we have come to rely upon
> suddenly dies. Or fails to restart when the toolserver is rebooted. Putting
> something into cron to be run on @reboot sadly doesn't always work, for example
> because the home directory may not yet be mounted when cron runs reboot jobs.

We should have a per-user initialisation script that are all run
during startup by rc.local.

> So, after a short discussion on IRC, i wrote a script to take care of this. I
> called if phoenix, it's available in the system path on nightshade and hemlock.
>
> Phonix just starts whatever command you give to it, but it first checks if that
> command is already running. If it is already running, phoenix does nothing. So,
> just call phonix from cron every few minutes to make sure your bot is restarted
> when it dies.
>
> For example, if you want to run 'mybot', call this every few minutes from cron:
>
>  phoenix /tmp/yourname-mybot /home/mydir/bin/mybot someparam
>
> The path /tmp/yourname-mybot is the base fir the PID and output files - output
> fill be written to /tmp/yourname-mybot.out, the processes pid will be stored in
> /tmp/yourname-mybot.pid.
>
> The second parameter, /home/mydir/bin/mybot, is the program to run. Anything
> following that are parameters to pass to this program.
>
>
> Please try it out and tell me about any problems! phoenix also prints a short
> help message when called without any parameters.
>
> -- daniel
>
> PS: I'm sure this wheel has been invented before... any pointers?

[[init]] is the original program given this task, and is still often
used for this purpose. The wiki page lists other tools that have been
written to help with this.

svscan from [[daemontools]] is a good one.

--
John Vandenberg



More information about the Toolserver-l mailing list