📄 jabberd.rc
字号:
#!/bin/bash## Raymond 25DEC2003 support@bigriverinfotech.com# /etc/rc.d/init.d/jabberd2# init script for jabberd2 processes# Tested under jabberd-2.0rc2 and Fedora 1.0 only## processname: jabberd2# description: jabberd2 is the next generation of the jabberd server# chkconfig: 2345 85 15#if [ -f /etc/init.d/functions ]; then . /etc/init.d/functionselif [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functionselse echo -e "\ajabberd2: unable to locate functions lib. Cannot continue." exit -1fi#progs="router resolver sm c2s s2s"progsPath="/usr/local/bin"confPath="/usr/local/etc/jabberd"pidPath="/usr/local/var/jabberd/pid"statusCol="echo -ne \\033[60G"statusColorOK="echo -ne \\033[1;32m"statusColorFailed="echo -ne \\033[1;31m"statusColorNormal="echo -ne \\033[0;39m"retval=0#StatusOK ( ) { ${statusCol} echo -n "[ " ${statusColorOK} echo -n "OK" ${statusColorNormal} echo " ]" return 0}#StatusFailed ( ) { echo -ne "\a" ${statusCol} echo -n "[" ${statusColorFailed} echo -n "FAILED" ${statusColorNormal} echo "]" return 0}#ReqBins ( ) { for prog in ${progs}; do if [ ! -x ${progsPath}/${prog} ]; then echo -n "jabberd2 binary [${prog}] not found." StatusFailed echo "Cannot continue." return -1 fi done return 0}#ReqConfs ( ) { for prog in ${progs}; do if [ ! -f ${confPath}/${prog}.xml ]; then echo -n "jabberd2 configuration [${prog}.xml] not found." StatusFailed echo "Cannot continue." return -1 fi done return 0}#ReqDirs ( ) { if [ ! -d ${pidPath} ]; then echo -n "jabberd2 PID directory not found. Cannot continue." StatusFailed return -1 fi return 0}#Start ( ) { for req in ReqBins ReqConfs ReqDirs; do ${req} retval=$? [ ${retval} == 0 ] || return ${retval} done echo "Initializing jabberd2 processes ..." for prog in ${progs}; do if [ $( pidof -s ${prog} ) ]; then echo -ne "\tprocess [${prog}] already running" StatusFailed sleep 1 continue fi echo -ne "\tStarting ${prog}: " if [ ${prog} == "router" ]; then ports="5347" elif [ ${prog} == "c2s" ]; then ports="5222 5223" elif [ ${prog} == "s2s" ]; then ports="5269" else ports="" fi for port in ${ports}; do if [ $( netstat --numeric-ports --listening --protocol=inet | gawk '{ print $4 }' | gawk -F : '{ print $NF }' | grep -c ${port}$ ) -ne "0" ]; then StatusFailed echo -e "\tPort ${port} is currently in use. Cannot continue" echo -e "\tIs a Jabber 1.x server running?" Stop let retval=-1 break 2 fi done rm -f /var/lock/subsys/${prog} rm -f ${pidPath}/${prog}.pid args="-c ${confPath}/${prog}.xml" ${progsPath}/${prog} ${args} & 2> /dev/null retval=$? if [ ${retval} == 0 ]; then StatusOK touch /var/lock/subsys/${prog} else StatusFailed Stop let retval=-1 break fi sleep 1 done return ${retval}}#Stop ( ) { echo "Terminating jabberd2 processes ..." for prog in ${progs}; do echo -ne "\tStopping ${prog}: " killproc ${prog} retval=$? if [ ${retval} == 0 ]; then rm -f /var/lock/subsys/${prog} rm -f ${pidPath}/${prog}.pid fi echo sleep 1 done return ${retval}}#case "$1" in start) Start ;; stop) Stop ;; restart) Stop Start ;; condrestart) if [ -f /var/lock/subsys/${prog} ]; then Stop sleep 3 Start fi ;; *) echo "Usage: $0 {start|stop|restart|condrestart}" let retval=-1esacexit ${retval}## eof
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -