imgwd 4.7 KB

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