summaryrefslogtreecommitdiffstats
path: root/network/ejabberd/rc.ejabberd
diff options
context:
space:
mode:
Diffstat (limited to 'network/ejabberd/rc.ejabberd')
-rw-r--r--network/ejabberd/rc.ejabberd41
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