diff options
author | Adrian C. (anrxc) <anrxc@sysphere.org> | 2012-11-25 21:24:58 +0100 |
---|---|---|
committer | Adrian C. (anrxc) <anrxc@sysphere.org> | 2012-11-25 21:24:58 +0100 |
commit | 16262790cb6ddacf6c632625cc865e03b1b8671f (patch) | |
tree | 09898d65deef518380915ecdc7575756c9ca8595 /src/ejabberd | |
parent | 7bb1499a7cd539f714bb7f603d7fc0a38fd8a963 (diff) | |
download | rcdscripts-16262790cb6ddacf6c632625cc865e03b1b8671f.tar.xz |
rcdscripts: import first snapshot of rc.d scripts as of 11.25.20122012.11.25
In 30 days these scripts will start dissapearing from official Arch
Linux packages. This is an attempt to conserve them, and keep sysvinit
usable.
Diffstat (limited to 'src/ejabberd')
-rwxr-xr-x | src/ejabberd/ejabberd | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/ejabberd/ejabberd b/src/ejabberd/ejabberd new file mode 100755 index 0000000..c73be81 --- /dev/null +++ b/src/ejabberd/ejabberd @@ -0,0 +1,63 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +cd /var/log/ejabberd/ + +get_pid() { + pidof epmd >/dev/null || { echo '' ; return 0; } + # get port from 'epmd -names', then get pid from 'ss -tlnp' + PORT=`epmd -names | grep ejabberd | cut -f5 -d\ ` + [ -z "$PORT" ] && { echo '' ; return 0; } + PID=`ss -tlnp | grep $PORT | grep -oE '[[:digit:]]+,' | cut -d, -f1` + [ -z "$PID" ] && { echo '' ; return 0; } + echo ${PID%/} +} + +case "$1" in + start) + stat_busy "Starting ejabber daemon" + + [ -d /var/lock/ejabberdctl ] || mkdir -p /var/lock/ejabberdctl + [ -f /var/run/ejabber.pid ] && rm -f /var/run/ejabber.pid + PID=`get_pid` + if [ -z "$PID" ]; then + su ejabberd -s /bin/bash - -c 'erl -pa /usr/lib/ejabberd/ebin -sname ejabberd -s ejabberd -ejabberd config \"/etc/ejabberd/ejabberd.cfg\" log_path \"/var/log/ejabberd/ejabberd.log\" -sasl sasl_error_logger \{file,\"/var/log/ejabberd/sasl.log\"\} -mnesia dir \"/var/lib/ejabberd\" -detached -kernel inetrc \"/etc/ejabberd/inetrc\"' + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + echo `get_pid` > /var/run/ejabberd.pid + add_daemon ejabberd + stat_done + fi + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping ejabber daemon" + PID=`get_pid` + [ ! -z "$PID" ] && su ejabberd -s /bin/bash - -c "kill $PID" &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm -f /var/run/ejabberd.pid &> /dev/null + rm_daemon ejabberd + stat_done + fi + ;; + + restart) + $0 stop + sleep 3 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 |