[ale] creating an init.d script

Todor Fassl fassl.tod at gmail.com
Tue Feb 17 16:41:22 EST 2015


The more I google, the more confused I get. It looks like /etc/init.d/ 
is depricated in favor of /etc/init/ scripts and something called 
upstart. Well, screw it. Your sample script will do. Thanks.

This reminds me of how right before the switch to udev, I'd spent like 2 
or 3 evenings teaching myself how to manage the system that udev 
replaces (can't recall what it was called). Same thing with oss -> alsa 
-> pulse. Just when you think you've finally got it figured out they 
tell you that's not the thing any more.

On 02/17/2015 10:56 AM, James Sumners wrote:
> Here's a skeleton I wrote:
>
> ```
> #!/bin/bash
> #
> # Skeleton service start-stop script
> #
> # chkconfig: 345 85 15
> # description: Created via a generic script. It should be edited.
> #
> # Script version = 0.1-2014-01-16
> # Set this to the name of the service. For example, if this script will
> # manage the "foobar" service, set this to "foobar". Note: you can create
> # a "/etc/sysconfig/foobar" file and this service script will source 
> it. So,
> # if you need to define any environment variables for the application, 
> define
> # them there (using `export` as necessary).
> APPNAME="foobar"
> # Set this to the full path of the binary/script to run.
> APPBINARY=/usr/local/bin/foobar
> # Specify arguments to be passed to the program on startup via this 
> variable.
> # For example, if "foobar" has a "-pidfile" argument, you could do:
> # `APPARGUMENTS="-pidfile /var/run/foobar.pid"`
> APPARGUMENTS=
> # Set this to the command necessary to stop the service. For example, 
> if the
> # "foobar" service must be shut down with `foobar -stop` then set this to
> # "foobar -stop"
> APPSTOPCMD="${APPBINARY} -stop"
> # Set this to the user that the application will run under. This script
> # _will not_ run applications as root. Thus, this variable _must_ be 
> set to
> # a valid user than can run the application in question.
> USER="auser"
> # Set this to the name of a function defined in 
> /etc/sysconfig/${APPNAME}. This
> # function will be called after `service ${APPNAME} start` has completed.
> STARTUP_CALLBACK=
> # Set this to the name of a function defined in 
> /etc/sysconfig/${APPNAME}. This
> # function will be called after `service ${APPNAME} stop` has 
> completed. You can
> # use this feature to run any special cleanup operation your 
> application might
> # need (i.e. any shit Ellucian apps leave behind).
> SHUTDOWN_CALLBACK=
> source /etc/init.d/functions
> if [ -r /etc/sysconfig/${APPNAME} ]; then
>   source /etc/sysconfig/${APPNAME}
> fi
> LOCAL_PIDFILE=/var/run/${APPNAME}_service.pid
> function start_service {
>   echo -n "Starting ${APPNAME}: "
>   status -p ${LOCAL_PIDFILE} ${APPNAME} > /dev/null && failure && exit
>   daemon --pidfile=${LOCAL_PIDFILE} --user=${USER} ${APPBINARY} 
> ${APPARGUMENTS}
>   ${STARTUP_CALLBACK} 2>&1 > /dev/null
>   echo
> }
> function stop_service {
>   echo -n "Stopping ${APPNAME}: "
>   status -p ${LOCAL_PIDFILE} ${APPNAME} > /dev/null
>   if [ ! $? -eq 0 ]; then
>     failure
>     echo
>     exit
>   fi
>   ${APPSTOPCMD}
>   killproc -p ${LOCAL_PIDFILE} ${APPBINARY}
>   ${SHUTDOWN_CALLBACK} 2>&1 > /dev/null
>   echo
> }
> case "$1" in
>   start)
>     start_service
>     ;;
>   stop)
>     stop_service
>     ;;
>   restart)
>     stop_server
>     start_server
>     ;;
>   status)
>     status -p ${LOCAL_PIDFILE} ${APPNAME}
>     ;;
>   *)
>     echo "Usage: $0 {start|stop|restart|status}"
>     exit 1
>     ;;
> esac
> ```
>
> On Tue, Feb 17, 2015 at 11:13 AM, Todor Fassl <fassl.tod at gmail.com 
> <mailto:fassl.tod at gmail.com>> wrote:
>
>     My department runs a FlexLM license server for 2 mathematical
>     programs, maple and matlab. I want to write some init.d scripts to
>     restart the license server instances if we reboot the license
>     server. Right now, I have to login and type the command. I can
>     easily put it in a script but I want to do it right.
>
>     I googled for examples but they all seem so complicated. I tried
>     copying an existing script and modifying it (apprort) but after
>     spending, I dunno, 10 minutes or so modifying it, I found it
>     wasn't suitable as an example.
>
>     What's a good generic init.d script to start with? Any good
>     tutorials you are aware of? I don't want to spend all day learning
>     how to write lsb scripts. An hour or 2 maybe but not all day. If I
>     can't learn how to do it right in an hour or so, I'm just going to
>     quick-and-dirty it.
>
>     _______________________________________________
>     Ale mailing list
>     Ale at ale.org <mailto:Ale at ale.org>
>     http://mail.ale.org/mailman/listinfo/ale
>     See JOBS, ANNOUNCE and SCHOOLS lists at
>     http://mail.ale.org/mailman/listinfo
>
>
>
>
> -- 
> James Sumners
> http://james.sumners.info/ (technical profile)
> http://jrfom.com/ (personal site)
> http://haplo.bandcamp.com/ (band page)
>
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo



More information about the Ale mailing list