Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I like to respawn a service when the service goes down. I have added it to inittab however I cannot kill it when i need to.

Is there away i can respawn a service however be able to kill it manually when i need to.

thanks in advance

share|improve this question
1  
What version of Ubuntu are you running? –  voretaq7 Nov 15 '12 at 21:57

3 Answers 3

up vote 2 down vote accepted

Ubuntu has switched to Upstart for its init daemon, so the best way would be to make an Upstart job file in /etc/init/. Here's an example:

description "My important service"

start on filesystem or runlevel [2345]
stop on runlevel [!2345]

respawn

exec /usr/bin/mydaemon --some-args

If this file is saved as /etc/init/myjob.conf, it will create a job that starts at boot, respawns when it dies, and can be manually stopped (as root) with stop myjob, service myjob stop, or initctl stop myjob.

share|improve this answer
    
...what if he's running a pre-upstart version of Ubuntu? :) –  voretaq7 Nov 15 '12 at 21:57
    
@voretaq7 Then he should upgrade, because the last version that didn't have Upstart was 6.06LTS (dapper), which stopped being supported in 2009 (2011 for servers). –  bonsaiviking Nov 16 '12 at 12:24
    
Prior to 10.04LTS (lucid), the Upstart directory was /etc/event.d/, but those versions are also no longer supported. Here's a handy resource for Ubuntu end-of-life dates. –  bonsaiviking Nov 16 '12 at 12:33

Non-Upstart systems

Old-school use of /etc/inittab. http://unixhelp.ed.ac.uk/CGI/man-cgi?inittab+5

The basic format is

<uniqueid>:<runlevel>:<action>:<command>

Upstart systems

Modern use of .conf files in /etc/init/: http://linux.die.net/man/5/init

The inittab method from above will still work.

share|improve this answer
    
For completeness, one of the most common init schemes is sysvinit, which consists of scripts in /etc/init.d/, symlinked from the appropriate /etc/rc[RUNLEVEL].d/, frequently configured with update-rc.d. –  bonsaiviking Nov 16 '12 at 12:28

I have tried solutions presented in previous answers, but it didn't work for my version of Teamviewer 9. The only way how to stop teamviewerd from respawning was this:

killall -9 teamviewerd

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.