sip2jabd 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. #!/bin/sh
  2. #
  3. # 3w-xxxx: Starts the sip2jab process
  4. #
  5. # Version: @(#) /etc/rc.d/init.d/3w-xxxx
  6. #
  7. # chkconfig: 2345 20 85
  8. # description: controls execution of SIP2Jabber gateway
  9. # processname: sip2jab
  10. # config: /etc/use_jabs.cfg
  11. # User "dcm" is used if is the script is run by root
  12. # JABBER
  13. JDIR="/home/dcm/jabber-1.4.2"
  14. JABBERD="${JDIR}/jabberd/jabberd"
  15. JICQEXT="${JDIR}/icqv7ext.sh"
  16. CONF="${JDIR}/conf/single.xml"
  17. JUID="dcm"
  18. JPID="${JDIR}/spool/jabbers.pid"
  19. JOUT="${JDIR}/spool/jabberd.log"
  20. # SER
  21. BIN=sip2jab
  22. HM=/home/dcm/sip_router
  23. ETC=$HM/etc/use_jabs.cfg
  24. USR="dcm"
  25. GRP="dcm"
  26. MYDIR=$HM/core
  27. CORE=$MYDIR/core
  28. RETVAL=0
  29. ############ ==== #############
  30. # Test if Jabber exists
  31. test -f ${JABBERD} -a -f ${CONF} || exit 0
  32. # Source function library.
  33. . /etc/rc.d/init.d/functions
  34. # Get config.
  35. . /etc/sysconfig/network
  36. # Check that networking is up.
  37. [ "${NETWORKING}" = "no" ] && exit 0
  38. # Current user
  39. CRT_USER=`whoami`
  40. ### Stop Jabber server
  41. stop_jab() {
  42. echo "Stopping ICQ transport - external component ..."
  43. killproc ${JICQEXT}
  44. # echo
  45. echo "Stopping Jabber server ..."
  46. killproc ${JABBERD}
  47. RETVAL=$?
  48. # echo
  49. # kill `cat ${JPID}`
  50. # echo " OK."
  51. }
  52. ### Start Jabber server
  53. start_jab() {
  54. if [ -f ${JPID} ]
  55. then
  56. echo "Cleaning Jabber from a previous dirty crash ..."
  57. stop_jab
  58. sleep 1
  59. rm -f ${JPID}
  60. fi
  61. if [ `id -u` = 0 ]
  62. then
  63. #### Run by root
  64. echo "Starting Jabber server ..."
  65. su - ${JUID} -c "cd ${JDIR}; ${JABBERD} -B -c ${CONF} > /dev/null 2>&1" > /dev/null 2>&1
  66. # echo
  67. sleep 2
  68. echo "Starting ICQ transport - external component ..."
  69. su - ${JUID} -c "cd ${JDIR}; ${JICQEXT} > /dev/null 2>&1 &" > /dev/null 2>&1
  70. RETVAL=$?
  71. # echo
  72. else
  73. ### Run by other users
  74. echo "Starting Jabber server ..."
  75. cd ${JDIR}
  76. ${JABBERD} -B -c ${CONF} > /dev/null 2>&1
  77. # echo
  78. sleep 2
  79. echo "Starting ICQ transport - external component ..."
  80. ${JICQEXT} > /dev/null 2>&1 &
  81. RETVAL=$?
  82. # echo
  83. fi
  84. sleep 1
  85. ### Checking if processes are started
  86. if [ `ps auxw | grep ${JABBERD} | head --lines=1 | awk '{print $11}'` = ${JABBERD} ]
  87. then
  88. echo "Jabber server: [[ STARTED ]]"
  89. else
  90. echo "Jabber server: [[ NOT STARTED ]]"
  91. fi
  92. if [ `ps auxw | grep ${JICQEXT} | head --lines=1 | awk '{print $11}'` != "grep" ]
  93. then
  94. echo "ICQ transport: [[ STARTED ]]"
  95. else
  96. echo "ICQ transport: [[ NOT STARTED ]]"
  97. fi
  98. }
  99. ### Stop SER
  100. stop_ser() {
  101. echo -n "Stopping SIP router ..."
  102. killproc ${BIN}
  103. RETVAL=$?
  104. echo
  105. # killall ser
  106. # echo " [ OK ]"
  107. }
  108. ### Start SER
  109. start_ser() {
  110. echo "Starting SIP router ..."
  111. if [ `id -u` = 0 ]
  112. then
  113. #### Run by root
  114. su - ${USR} -c "cd ${HM}; ${HM}/${BIN} -f ${ETC} -w ${MYDIR}" > /dev/null 2>&1
  115. RETVAL=$?
  116. else
  117. #### Run by other users
  118. #cd $MYDIR
  119. # core timestamping moved to sercheck; -jiri
  120. # if [ -f $CORE ] ; then
  121. # chmod a+r $CORE
  122. # DATE=`date "+%Y-%m-%d--%H-%M"`
  123. # mv $CORE $CORE.$DATE
  124. # ( cd ../sip_router; tar cf - . ) | gzip > ser.$DATE.tgz
  125. # fi
  126. cd ${HM}
  127. ${HM}/${BIN} -f ${ETC} -w ${MYDIR}
  128. RETVAL=$?
  129. # man setuid: If uid is different from the old effective uid,
  130. # the process will be forbidden from eaving core dumps.
  131. # -> don't set uid, we want to collect core dumps
  132. # -u $USR -g $GRP
  133. fi
  134. sleep 1
  135. ### Checking if processes are started
  136. if [ `ps auxw | grep ${HM}/${BIN} | head --lines=1 | awk '{print $11}'` = ${HM}/${BIN} ]
  137. then
  138. echo "SIP router: [[ STARTED ]]"
  139. else
  140. echo "SIP router: [[ NOT STARTED ]]"
  141. fi
  142. }
  143. ### Check
  144. check_run() {
  145. ### Checking if Jabber server is running
  146. if [ `ps auxw | grep ${JABBERD} | head --lines=1 | awk '{print $11}'` = ${JABBERD} ]
  147. then
  148. echo "Jabber server: [[ RUNNING ]]"
  149. else
  150. echo "Jabber server: [[ NOT RUNNING ]]"
  151. fi
  152. ### Checking if ICQ transport is running
  153. if [ `ps auxw | grep ${JICQEXT} | head --lines=1 | awk '{print $11}'` != "grep" ]
  154. then
  155. echo "ICQ transport: [[ RUNNING ]]"
  156. else
  157. echo "ICQ transport: [[ NOT RUNNING ]]"
  158. fi
  159. ### Checking if SIP router is running
  160. if [ `ps auxw | grep ${HM}/${BIN} | head --lines=1 | awk '{print $11}'` = ${HM}/${BIN} ]
  161. then
  162. echo "SIP router: [[ RUNNING ]]"
  163. else
  164. echo "SIP router: [[ NOT RUNNING ]]"
  165. fi
  166. }
  167. case "$1" in
  168. start)
  169. start_jab
  170. start_ser
  171. ;;
  172. stop)
  173. stop_ser
  174. stop_jab
  175. ;;
  176. restart)
  177. echo "Restarting SIP2Jabber ..."
  178. stop_ser
  179. stop_jab
  180. sleep 2
  181. echo
  182. start_jab
  183. start_ser
  184. ;;
  185. check)
  186. check_run
  187. ;;
  188. *)
  189. N=$0
  190. echo "Usage: $N {start|stop|restart|check}" >&2
  191. exit 1
  192. ;;
  193. esac
  194. echo
  195. exit $RETVAL