[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