aboutsummaryrefslogtreecommitdiff
path: root/network/ejabberd/rc.ejabberd
diff options
context:
space:
mode:
Diffstat (limited to 'network/ejabberd/rc.ejabberd')
-rw-r--r--network/ejabberd/rc.ejabberd14
1 files changed, 13 insertions, 1 deletions
diff --git a/network/ejabberd/rc.ejabberd b/network/ejabberd/rc.ejabberd
index 9ff1a8a3312ee..dfd7a3504316f 100644
--- a/network/ejabberd/rc.ejabberd
+++ b/network/ejabberd/rc.ejabberd
@@ -24,6 +24,16 @@ 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
+}
+
case "$1" in
start)
start_ejabberd ;;
@@ -33,6 +43,8 @@ restart|reload)
restart_ejabberd ;;
status)
status_ejabberd ;;
+force-stop)
+ force-stop_ejabberd ;;
*)
- echo "usage $0 start|stop|restart|status"
+ echo "usage $0 start|stop|restart|status|force-stop"
esac