程序运行格式为 mono /opt/Release/XXX.exe 配置文件目录。程序开启后会打开一个tcp端口。
写了一个超级笨的脚本,是实现多个程序实例一键开启的。脚本通过目录是否存在和端口连接是否为零来判断某个程序实例激活状态。
#!/bin/sh
mono=`which mono`
Release_DIR="/opt/Release"
exe="${Release_DIR}/XXX.exe"
###########
server2_DIR="/opt/server2"
server3_DIR="/opt/server3"
server4_DIR="/opt/server4"
server5_DIR="/opt/server5"
server6_DIR="/opt/server6"
server7_DIR="/opt/server7"
server8_DIR="/opt/server8"
server9_DIR="/opt/server9"
server10_DIR="/opt/server10"
s2=`netstat -ant|grep 0:5001|wc -l`
s3=`netstat -ant|grep 0:5002|wc -l`
s4=`netstat -ant|grep 0:5003|wc -l`
s5=`netstat -ant|grep 0:5004|wc -l`
s6=`netstat -ant|grep 0:5005|wc -l`
s7=`netstat -ant|grep 0:5006|wc -l`
s8=`netstat -ant|grep 0:5007|wc -l`
s9=`netstat -ant|grep 0:5008|wc -l`
s10=`netstat -ant|grep 0:5009|wc -l`
if [ -d ${server2_DIR} ]; then
if [ $s2 -eq 0 ]; then screen -dmS S2 $mono $exe ${server2_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server3_DIR} ]; then
if [ $s3 -eq 0 ]; then screen -dmS S3 $mono $exe ${server3_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server4_DIR} ]; then
if [ $s4 -eq 0 ]; then screen -dmS S4 $mono $exe ${server4_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server5_DIR} ]; then
if [ $s5 -eq 0 ]; then screen -dmS S5 $mono $exe ${server5_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server6_DIR} ]; then
if [ $s6 -eq 0 ]; then screen -dmS S6 $mono $exe ${server6_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server7_DIR} ]; then
if [ $s7 -eq 0 ]; then screen -dmS S7 $mono $exe ${server7_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server8_DIR} ]; then
if [ $s8 -eq 0 ]; then screen -dmS S8 $mono $exe ${server8_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server9_DIR} ]; then
if [ $s9 -eq 0 ]; then screen -dmS S9 $mono $exe ${server9_DIR}/ > /dev/null 2>&1;fi
fi
if [ -d ${server10_DIR} ]; then
if [ $s10 -eq 0 ]; then screen -dmS S10 $mono $exe ${server10_DIR}/ > /dev/null 2>&1;fi
fi
现在自己把###########下面的代码写到一个循环里面,但修改后无法执行。故在此求高人指点。
for a in `seq 2 10`
do let s$a=`netstat -ant|grep 0:500$[$a-1]|wc -l`
if [ -d /opt/server$a ]; then
if [ s$a -eq 0 ]; then
screen -dmS S$a $mono $exe /opt/server$a/ > /dev/null 2>&1;fi
fi
done