记录一下做简易自动化部署时候的shell。
#!/bin/bash
#author:victor zhang
#file: restart-all.sh
#comment: axe infrastructure services restart script.
#histroy:
# 2022.11.11 created by victor zhang
##初始化参数
#服务名
SERVICE_NAME=(
)
# first stop all services
echo ""
echo "---------停止程序 开始执行 ...-----------"
for((i=0;i<${#SERVICE_NAME[@]};i++))
do
num=$((i+1))
service_name=${SERVICE_NAME[i]}
service_pid=$(ps -ef | grep "$service_name" | grep -v grep | grep -v bash | awk '{print $2}')
if [ "$service_pid" == "" ]; then
echo "--- 服务$num: 【$service_name】进程不存在或已停止运行!!!"
else
kill -9 "$service_pid"
echo "--- 服务$num: 【$service_name】停止成功。"
fi
sleep 1
done
echo "---------停止程序 执行完毕 !!!-----------"
echo ""
# then start all services
echo ""
echo "---------启动程序 开始执行 ...-----------"
for((i=0;i<${#SERVICE_NAME[@]};i++))
do
num=$((i+1))
service_name=${SERVICE_NAME[i]}
service_package="${SERVICE_NAME[i]}.jar"
echo "---服务$num:【$service_name】开始启动 ..."
echo "---服务安装程序为: $service_package"
service_pid=$(ps -ef | grep "$service_name" | grep -v grep | grep -v bash | awk '{print $2}')
if [ -n "$service_pid" ];then
echo "--- $service_name进程存在,无需启动。当前进程为:$service_pid"
else
#启动服务
echo "--- $service_name进程不存在,启动服务 ..."
#运行java服务并在后台执行
nohup java -jar -Xmx512m -Xms512m "$service_package" &
#判断服务启动成功
service_pid_new=$(ps -ef | grep "$service_name" | grep -v grep | grep -v bash | awk '{print $2}')
until [ -n "$service_pid_new" ]
do
service_pid_new=$(ps -ef | grep "$service_name" | grep -v grep | grep -v bash | awk '{print $2}')
done
echo "--- $service_name 启动完毕!!!当前进程为:$service_pid_new"
fi
sleep 2
done
echo "---------启动程序 执行完毕 !!!-----------"
echo ""