Services to be started: H2 database server, serial port listening service, tomcat - in that order.
Naturally, all applications have been installed.
First step - prepare script files:
/etc/init.d/h2 file:
#!/bin/bash
### BEGIN INIT INFO
# Provides: h2
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: h2 database
# Description: h2 database
### END INIT INFO
test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions
H2_HOME=/opt/h2
DAEMON=h2server
ARGS=
#PID=$(get_pid $DAEMON)
case "$1" in
start)
log_begin_msg "Starting h2 database"
$H2_HOME/bin/$DAEMON $ARGS & #>/dev/null
log_end_msg 0
;;
stop)
log_begin_msg "Stopping $DAEMON"
kill `ps aux | awk '/h2.*jar/{print $2}'` > /dev/null
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
/etc/init.d/rxreader file:
#!/bin/bash
### BEGIN INIT INFO
# Provides: rxreader
# Required-Start: $tomcat
# Required-Stop: $tomcat
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: rxreader
# Description: rxreader
### END INIT INFO
test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions
RXRD_HOME=/opt/rxreader
DAEMON=read
ARGS=
case "$1" in
start)
log_begin_msg "Starting h2 database"
#[ -z "$PID" ] &&
$RXRD_HOME/bin/$DAEMON $ARGS & #>/dev/null
log_end_msg 0
;;
stop)
log_begin_msg "Stopping $DAEMON"
kill `ps aux | awk '/rxreader/{print $2}'` > /dev/null
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
/etc/init.d/tomcat file:
#!/bin/bash
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $h2
# Required-Stop: $h2
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: tomcat
# Description: tomcat
### END INIT INFO
test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions
TOMCAT_HOME=/opt/apache-tomcat-7
DAEMON=startup.sh
ARGS=
case "$1" in
start)
log_begin_msg "Starting apache tomcat"
$TOMCAT_HOME/bin/$DAEMON $ARGS & #>/dev/null
log_end_msg 0
;;
stop)
log_begin_msg "Stopping $DAEMON"
$TOMCAT_HOME/bin/shutdown.sh
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
When file are in /etc/init.d directory we have to run update-rc command, which installs (or removes) System-V style init script links:
sudo update-rc.d h2 defaults sudo update-rc.d tomcat defaults sudo update-rc.d rxreader defaults
Now you can restart RPi or start services manually:
sudo service h2 start sudo service rxreader start sudo service tomcat start