1
0
mirror of https://github.com/mbirth/wiki.git synced 2024-12-27 23:24:06 +00:00
wiki.mbirth.de/know-how/software/linux/_posts/2008-07-15-initscripts.md

125 lines
2.6 KiB
Markdown
Raw Normal View History

2015-03-29 20:32:35 +01:00
---
title: event.d/init.d script
layout: default
created: 2008-07-15 23:49:48 +0200
updated: 2008-07-15 23:49:48 +0200
toc: false
tags:
- know-how
- software
- linux
- system
- initd
- boot
---
event.d script
==============
This is an event.d-script for the new Ubuntu [Upstart](http://upstart.ubuntu.com/).
The event gets started/respawned on runlevels 2-5. If you change to level 0, 1 or 6, the process gets stopped/killed.
2015-03-29 21:05:46 +01:00
Manual start/stop works through the same commands `start` and `stop`. With `status` you can check the status.
2015-03-29 20:32:35 +01:00
2015-03-29 20:38:11 +01:00
~~~
2015-03-29 20:32:35 +01:00
# manages Solr search engine
start on runlevel [2345]
stop on runlevel [016]
kill timeout 30
respawn
script
cd /home/sysadmin/extension/ezfind/java
exec /usr/bin/java -jar start.jar
end script
2015-03-29 20:38:11 +01:00
~~~
2015-03-29 20:32:35 +01:00
init.d script
=============
This does the same using the traditional init.d-way.
2015-03-29 21:05:46 +01:00
After creation of the script in `/etc/init.d` you also have to make the symlinks in the `rc.2`..`rc.5`-directories.
2015-03-29 20:32:35 +01:00
{% highlight bash %}
#!/bin/sh
### BEGIN INIT INFO
# Provides: solr
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start Solr daemon
### END INIT INFO
# Defaults
RUN_MODE="daemons"
JAVA=/usr/bin/java
DAEMONDIR=/home/sysadmin/extension/ezfind/java
DAEMON=start.jar
PIDDIR=/var/run
SOLRPID=$PIDDIR/solr.pid
# See if the daemon is there
test -x $JAVA -a -x $DAEMONDIR/$DAEMON || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting Solr daemon"
log_progress_msg "solr"
# Make sure we have our PIDDIR, even if it's on a tmpfs
install -o root -g root -m 755 -d $PIDDIR
if ! start-stop-daemon --start --chdir $DAEMONDIR --quiet --pidfile $SOLRPID --make-pidfile --background --exec $JAVA -- -jar $DAEMON; then
log_end_msg 1
exit 1
fi
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping Solr daemon"
log_progress_msg "solr"
start-stop-daemon --stop --quiet --pidfile $SOLRPID
# Wait a little and remove stale PID file
sleep 1
if [ -f $SOLRPID ] && ! ps h `cat $SOLRPID` > /dev/null
then
# Stale PID file (solr was succesfully stopped),
# remove it
rm -f $SOLRPID
fi
log_end_msg 0
;;
restart|force-reload)
$0 stop
sleep 1
$0 start
;;
status)
pidofproc -p $SOLRPID $JAVA >/dev/null
status=$?
if [ $status -eq 0 ]; then
log_success_msg "SOLR is running"
else
log_failure_msg "SOLR is not running"
fi
exit $status
;;
*)
echo "Usage: /etc/init.d/solr {start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit 0
{% endhighlight %}