因为我比较懒,所以搞个shell脚本,欢迎大家改进。
要用的话改个前三段程序所在的目录变量就行。
①可以一起启动三个;
②如果这三个某一两个启动着,也不会再次启动。
干,启动jar包的地方有问题,成功失败都显示成功,暂时没有想到解决办法。
jar_name=xxx.jar
jar_path=/usr/local/xxx
log_path=/usr/local/xxx/logs/`date +%y-%m-%d`_out.log
#指定redis_server以及配置文件目录,配置文件名称必须为redis.conf
rServer_path=/usr/local/redis/src
rConf_path=/usr/local/redis
#指定nginx以及配置文件目录,以实际目录为主
nServer_path=/usr/local/nginx/sbin
nConf_path=/usr/local/nginx/conf
#指向自定义jdk
#export JAVA_HOME=/usr/local/jdk1.8.0_161
#export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
#export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
startJar(){
echo "润之正在启动${jar_name},请稍后"
pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}')
if [ -z $pid ]; then
cd $jar_path
nohup java -jar $jar_name >$log_path 2>&1 &
sleep 5
pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}')
if [ -z $pid ]; then
echo "jar包启动失败"
else
pid=$(ps -ef | grep $jar_name | grep -v grep | awk '{print $2}')
echo "${jar_name}启动成功,pid=${pid3}"
echo ""
echo "所有程序部署完毕!"
fi
else
echo "应用${jar_name} 不需要启动,其已经处于运行状态,pid = ${pid}"
fi
}
startNginx(){
echo "润之正在启动nginx,请稍后"
pid=$(ps -ef|grep nginx|grep master|awk '{print $2}')
if [ -z $pid ]; then
cd $nServer_path
./nginx -c ${nConf_path}/nginx.conf
sleep 0.5
pid=$(ps -ef|grep nginx|grep master|awk '{print $2}')
echo $pid
if [ -z $pid ]; then
echo "nginx启动失败"
else
echo "nginx启动成功,主进程pid=${pid}"
fi
else
echo "应用nginx不需要启动,其已经处于运行状态,主进程pid = ${pid}"
fi
echo ""
sleep 2
startJar
}
startRedis(){
echo "润之正在启动redis,请稍后"
pid=$(ps -ef | grep redis | grep -v grep | awk '{print $2}')
if [ -z $pid ]; then
cd $rServer_path
./redis-server ${rConf_path}/redis.conf
sleep 0.5
pid=$(ps -ef | grep redis | grep -v grep | awk '{print $2}')
if [ -z $pid ]; then
echo "redis启动失败"
else
echo "redis启动成功,pid=${pid}"
fi
else
echo "应用reids不需要启动,其已经处于运行状态,pid = ${pid}"
fi
echo ""
sleep 2
startNginx
}
startRedis