[asterisk-users] /etc/init.d script and calling asterisk command line.

A J Stiles asterisk_list at earthshod.co.uk
Tue Jan 17 08:30:55 CST 2012


On Tuesday 17 January 2012, Bryant Zimmerman wrote:
> I have written a program that monitors asterisk to make sure my peers and
> channels are all in good order. The program calls asterisk once a min and
> then parses the output.  The program works fine when launched from the
> command line. I then wrote a script to launch the program with the hope of
> launching it on boot up from /etc/init.d. When I log into a terminal
> session and run the script I am able to start/stop/status on the program
> and all is good. When I copy the same script to the /etc/init.d folder and
> run it the program fails to be able to access the asterisk bin.
> 
> In all three cases I am logged in as root. The script is owned by root and
> all it's permissions set.   Anyone have any idea why running my startup
> script from the /etc/init.d folder would act differently?
> 
> 
> I am running asterisk 1.8.x, On opensuse 11.x. The startup script is
> launching a mono application.

Is it properly linked from /etc/rc2.d , /etc/rc3.d and so forth?

When you enter a runlevel, init goes through in order executing files whose 
names start with a K (for Kill) with argument "stop", and then again executing 
files whose names start with an S (for Start) with argument "start".  The 
filenames are contrived so as to force a particular order, and they in turn are 
symbolic links to scripts  (usually)  located in /etc/init.d/ .  I say 
"usually" because, being symlinks, they could be anywhere; but /etc/init.d/ is 
the usual place to put them, just so they can be run manually from there.

If you want your program to start in runlevels 2, 3, 4 and 5, but not in 0, 1 
and 6, and it must wait until after all "S60*" have run, then you need to do 
somethink like

# ln -s /etc/init.d/myfunkyservice /etc/rc2.d/S65myfunkyservice
# ln -s /etc/init.d/myfunkyservice /etc/rc3.d/S65myfunkyservice
# ln -s /etc/init.d/myfunkyservice /etc/rc4.d/S65myfunkyservice
# ln -s /etc/init.d/myfunkyservice /etc/rc5.d/S65myfunkyservice
# ln -s /etc/init.d/myfunkyservice /etc/rc0.d/K65myfunkyservice
# ln -s /etc/init.d/myfunkyservice /etc/rc1.d/K65myfunkyservice
# ln -s /etc/init.d/myfunkyservice /etc/rc6.d/K65myfunkyservice

Also, I suggest you read your distro's documentation on custom boot scripts, 
because every distribution has its own slightly different ideas about how the 
bootup process should work.

-- 
AJS

Answers come *after* questions.



More information about the asterisk-users mailing list