Browse Source

SIP2Jabber init.d script

Daniel-Constantin Mierla 23 năm trước cách đây
mục cha
commit
c0a45f2f50
1 tập tin đã thay đổi với 155 bổ sung0 xóa
  1. 155 0
      etc/sip2jabd

+ 155 - 0
etc/sip2jabd

@@ -0,0 +1,155 @@
+#!/bin/bash
+
+############ ==== #############
+#  SIP2JABBER gateway script  #
+############ ==== #############
+
+# User "dcm" is used if is the script is run by root
+
+# JABBER
+JDIR="/home/dcm/jabber-1.4.2"
+JABBERD="${JDIR}/jabberd/jabberd"
+JICQEXT="${JDIR}/icqv7ext.sh"
+CONF="${JDIR}/conf/single.xml"
+JUID="dcm"
+JPID="${JDIR}/spool/jabbers.pid"
+JOUT="${JDIR}/spool/jabberd.log"
+
+# SER
+BIN=sip2jab
+HM=/home/dcm/sip_router
+ETC=$HM/etc/use_jabs.cfg
+USR="dcm"
+GRP="dcm"
+MYDIR=$HM/core
+CORE=$MYDIR/core
+
+RETVAL=0
+
+############ ==== #############
+
+# Test if Jabber exists
+test -f ${JABBERD} -a -f ${CONF} || exit 0
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Get config.
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ "${NETWORKING}" = "no" ] && exit 0
+
+# Current user
+CRT_USER=`whoami`
+
+### Stop Jabber server
+stop_jab() {
+	echo "Stopping ICQ transport - external component ..."
+	killproc ${JICQEXT}
+	# echo
+	echo "Stopping Jabber ..."
+	killproc ${JABBERD}
+	# echo
+	# kill `cat ${JPID}`
+	# echo " OK."
+}
+
+### Start Jabber server
+start_jab() {
+	if [ -f ${JPID} ]
+	then
+		echo "Cleaning Jabber from a previous dirty crash ..."
+		stop_jab
+		sleep 1
+		rm -f ${JPID}
+	fi
+
+	if [ `id -u` = 0 ]
+	then
+		#### Run by root
+		echo "Starting Jabber server ..."
+		su - ${JUID} -B -c "cd ${JDIR}; ${JABBERD} -c ${CONF}"  > /dev/null 2>&1
+		# echo
+		sleep 1
+		echo "Starting ICQ transport - external component ..."
+		su - ${JUID} -c "cd ${JDIR}; ${JICQEXT} > /dev/null 2>&1 &"  > /dev/null 2>&1
+		# echo
+	else
+		### Run by other users
+		echo "Starting Jabber ..."
+		cd ${JDIR}
+		${JABBERD} -B -c ${CONF}
+		# echo
+		sleep 1
+		echo "Starting ICQ transport - external component ..."
+		${JICQEXT} > /dev/null 2>&1 &
+		# echo
+	fi
+}
+
+### Stop SER
+stop_ser() {
+	echo -n "Stopping SIP router ..."
+	killproc ${BIN}
+	echo
+	# killall ser
+	# echo " [ OK ]"
+}
+
+### Start SER
+start_ser() {
+	echo "Starting SIP router ..."
+	if [ `id -u` = 0 ]
+	then
+		#### Run by root
+		su - ${USR} -c "cd ${HM}; ${HM}/${BIN} -f ${ETC} -w ${MYDIR}"  > /dev/null 2>&1
+	else
+		#### Run by other users
+		#cd $MYDIR
+
+		# core timestamping moved to sercheck; -jiri
+		#	if [ -f $CORE ] ; then
+		#		chmod a+r $CORE
+		#		DATE=`date "+%Y-%m-%d--%H-%M"`
+		#		mv $CORE $CORE.$DATE
+		#		( cd ../sip_router; tar cf - . ) | gzip > ser.$DATE.tgz
+		#	fi
+
+		cd ${HM}
+		${HM}/${BIN} -f ${ETC} -w ${MYDIR}
+
+		# man setuid: If uid is different from the old effective uid,
+		# the process will be forbidden from eaving core dumps.
+		# -> don't set uid, we want to collect core dumps
+		# -u $USR -g $GRP
+	fi
+	echo
+}
+
+case "$1" in
+	start)
+		start_jab
+		start_ser
+	;;
+	stop)
+		stop_ser
+		stop_jab
+	;;
+	restart)
+		echo -n "Restarting SIP2Jabber ..."
+		stop_ser
+		stop_jab
+		sleep 1
+		echo
+		start_jab
+		start_ser
+	;;
+	*)
+		N=$0
+		echo "Usage: $N {start|stop|restart}" >&2
+		exit 1
+	;;
+esac
+echo
+exit $?