[packages/graylog2-server] pldized initscript (NFY)
glen
glen at pld-linux.org
Wed Jul 11 22:47:15 CEST 2012
commit 5abe030b007fc51cbcacf329a97b094826bf4c84
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Wed Jul 11 23:46:52 2012 +0300
pldized initscript (NFY)
graylog2-server.init | 190 +++++++++++++++++++--------------------------------
graylog2-server.spec | 5 +-
2 files changed, 75 insertions(+), 120 deletions(-)
---
diff --git a/graylog2-server.init b/graylog2-server.init
old mode 100644
new mode 100755
index 6165a6c..1bce51d
--- a/graylog2-server.init
+++ b/graylog2-server.init
@@ -1,151 +1,103 @@
-#!/bin/bash
+#!/bin/sh
#
# graylog2-server - This script starts and stops the graylog2-server daemon
#
-# chkconfig: - 85 15
-# description: graylog2 is a syslog implementation that stores logs in MongoDB
-
-### BEGIN INIT INFO
-# Provides:
-# Required-Start: $network
-# Required-Stop: $network
-# Default-Stop: 0 1 2 6
-# Short-Description: Start/stop the graylog2-server daemon
-# Description: A syslog implementation that stores logs in MongoDB
-### END INIT INFO
+# chkconfig: 345 85 15
+#
+# description: graylog2 is a syslog implementation that stores logs in MongoDB
+#
+# config: /etc/graylog2.conf
+# pidfile: /var/run/graylog2.pid
+#
-# Source function library.
-. /etc/init.d/functions
+# Source function library
+. /etc/rc.d/init.d/functions
-# Check networking
+# Get network config
. /etc/sysconfig/network
-[[ $NETWORKING == no ]] && exit 0
-
-prog="graylog2-server"
-jar="/usr/share/$prog/$prog.jar"
-lockfile="/var/lock/subsys/$prog"
-logfile="/var/log/$prog/$prog.log"
-pidfile="/var/run/$prog.pid"
-JAVA_BIN="/usr/bin/java"
-
-unset pid
-
-gl2_run() {
- # Disable csh style history expansion for safety
- set +H
- daemon "( $JAVA_BIN -jar \"$jar\" >\"$logfile\" 2>&1 & echo \"\$!\" >\"$pidfile\" )"
- pid=$(<"$pidfile")
- sleep 1
- if kill -0 "$pid" >/dev/null 2>&1
- then
- return 0
- else
- return 1
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down "graylog2 server"
+ exit 1
fi
-}
+else
+ exit 0
+fi
-gl2_status() {
- [[ -f $pidfile ]] && pid=$(<"$pidfile")
- [[ -z $pid ]] && return 1
- if kill -0 "$pid" >/dev/null 2>&1
- then
- return 0
- else
- return 1
- fi
-}
+# Get service config - may override defaults
+[ -f /etc/sysconfig/graylog2-server ] && . /etc/sysconfig/graylog2-server
-status() {
- if gl2_status
- then
- echo $"$prog (pid $pid) is running..."
- return 0
- else
- if [[ -f $lockfile ]]
- then
- echo $"$prog dead but subsys locked"
- return 2
- fi
- echo $"$prog is stopped"
- return 3
- fi
-}
+jarfile="/usr/share/java/graylog2-server.jar"
+pidfile="/var/run/graylog2-server.pid"
start() {
- [[ -r $jar ]] || exit 5
- gl2_run >/dev/null 2>&1
- if [[ $? -eq 0 ]]
- then
- retval=0
- touch "$lockfile"
- success
- else
- retval=1
- failure
+ # Check if the service is already running?
+ if [ -f /var/lock/subsys/graylog2-server ]; then
+ msg_already_running "graylog2 server"
+ return
fi
- echo $"Starting $prog: "
- return "$retval"
+ msg_starting "graylog2 server"
+ # TODO: output redirection
+ # TODO: save pid
+ daemon --fork /usr/bin/java -jar $jarfile
+
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/graylog2-server
}
stop() {
- killproc -p "$pidfile"
- if [[ $? -eq 0 ]]
- then
- retval=0
- rm -f "$lockfile"
- success
- else
- retval=1
- failure
+ if [ ! -f /var/lock/subsys/graylog2-server ]; then
+ msg_not_running "graylog2 server"
+ return
fi
- echo $"Stopping $prog: "
- return "$retval"
+ # Stop daemons.
+ msg_stopping "graylog2 server"
+ # TODO: process name is really java
+ killproc --pidfile $pidfile graylog2-server -TERM
+ rm -f /var/lock/subsys/graylog2-server
}
-restart() {
- stop
- start
-}
-
-reload() {
- restart
-}
+condrestart() {
+ if [ ! -f /var/lock/subsys/graylog2-server ]; then
+ msg_not_running "graylog2 server"
+ RETVAL=$1
+ return
+ fi
-force_reload() {
- restart
+ stop
+ start
}
+RETVAL=0
+# See how we were called.
case "$1" in
start)
- gl2_status && exit 0
- $1
- ;;
+ start
+ ;;
stop)
- gl2_status || exit 0
- $1
- ;;
+ stop
+ ;;
restart)
- $1
- ;;
- reload)
- gl2_status || exit 7
- $1
- ;;
+ stop
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
force-reload)
- force_reload
- ;;
+ condrestart 7
+ ;;
status)
- $1
- ;;
- condrestart|try-restart)
- gl2_status || exit 0
- restart
- ;;
+ status --pidfile $pidfile graylog2-server java
+ RETVAL=$?
+ ;;
*)
- echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
- exit 2
+ msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"
+ exit 3
esac
-exit $?
+
+exit $RETVAL
diff --git a/graylog2-server.spec b/graylog2-server.spec
index ef125f5..6b27d4d 100644
--- a/graylog2-server.spec
+++ b/graylog2-server.spec
@@ -1,8 +1,10 @@
+# TODO
+# - run as dedicated user
%include /usr/lib/rpm/macros.java
Summary: A syslog implementation that stores logs in MongoDB
Name: graylog2-server
Version: 0.9.6p1
-Release: 0.1
+Release: 0.2
License: GPL v3
Group: Daemons
URL: http://www.graylog2.org/
@@ -64,3 +66,4 @@ fi
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/graylog2.conf
%attr(754,root,root) /etc/rc.d/init.d/graylog2-server
%{_javadir}/graylog2-server*.jar
+%dir %{_localstatedir}/log/%{name}
More information about the pld-cvs-commit
mailing list