diff options
Diffstat (limited to 'main/iaxmodem/iaxmodem.initd')
-rw-r--r-- | main/iaxmodem/iaxmodem.initd | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/main/iaxmodem/iaxmodem.initd b/main/iaxmodem/iaxmodem.initd new file mode 100644 index 000000000..d6f2c947a --- /dev/null +++ b/main/iaxmodem/iaxmodem.initd @@ -0,0 +1,43 @@ +#!/sbin/runscript +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/www/viewcvs.gentoo.org/raw_cvs/gentoo-x86/net-misc/iaxmodem/files/iaxmodem.initd,v 1.1 2008/10/14 23:53:39 sbriesen Exp $ + +description="IAXmodem" +description_reload="Reread configuration file and make the appropriate changes" +extra_started_commands="reload" +command="/usr/sbin/iaxmodem" +pidfile="/var/run/iaxmodem.pid" +name="iaxmodem" + +depend() { + use asterisk + need net +} + +start() { + ebegin "Starting ${description}" + start-stop-daemon --start --quiet --pidfile "${pidfile}" \ + --env TMPDIR="/tmp" --nice ${IAXMODEM_NICE:-0} --exec "${command}" + eend ${?} +} + +stop() { + local childs="" + ebegin "Stopping ${description}" + # start-stop-daemon doesn't kill childs reliable, so we + # use a combination of pgrep + start-stop-daemon + kill + [ -s "${pidfile}" ] && childs=$(pgrep -P $(cat "${pidfile}")) + start-stop-daemon --stop --quiet --pidfile "${pidfile}" --retry TERM/10/KILL/5 + if eend ${?}; then + # if there're still childs running, kill them! + [ -n "${childs}" ] && kill -KILL ${childs} 2>/dev/null + return 0 + fi +} + +reload() { + ebegin "Reloading ${description} configuration" + start-stop-daemon --stop --signal HUP --pidfile "${pidfile}" + eend ${?} +} |