diff options
Diffstat (limited to 'network/ejabberd/rc.ejabberd')
-rw-r--r-- | network/ejabberd/rc.ejabberd | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/network/ejabberd/rc.ejabberd b/network/ejabberd/rc.ejabberd index 9ff1a8a331..b231820a51 100644 --- a/network/ejabberd/rc.ejabberd +++ b/network/ejabberd/rc.ejabberd @@ -10,13 +10,14 @@ start_ejabberd() { } stop_ejabberd() { - echo "Stoppping ejabberd... " + echo "Stopping ejabberd... " $bin stop $bin stopped } restart_ejabberd() { stop_ejabberd + sleep 1 start_ejabberd } @@ -24,15 +25,33 @@ status_ejabberd() { $bin status } +force-stop_ejabberd() { + echo "Killing ejabberd... " + port=$(/usr/bin/epmd -names | awk -v name=ejabberd '$2==name {print $5}') + if [ -z "$port" ]; then + echo "ejabberd not found" + else + kill $(lsof -i TCP:$port -s TCP:LISTEN | tail -n +2 | awk '{print $2}') + fi +} + +reload-config_ejabberd() { + $bin reload_config +} + case "$1" in -start) - start_ejabberd ;; -stop) - stop_ejabberd ;; -restart|reload) - restart_ejabberd ;; -status) - status_ejabberd ;; -*) - echo "usage $0 start|stop|restart|status" + start) + start_ejabberd ;; + stop) + stop_ejabberd ;; + restart|reload) + restart_ejabberd ;; + status) + status_ejabberd ;; + force-stop) + force-stop_ejabberd ;; + reload-config) + reload-config_ejabberd ;; + *) + echo "usage $0 start|stop|restart|status|force-stop|reload-config" ;; esac |