diff options
Diffstat (limited to 'network/ejabberd/rc.ejabberd')
-rw-r--r-- | network/ejabberd/rc.ejabberd | 14 |
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 |