golang: 启动应用的bash脚本
一,代码:
#!/bin/bash
export BUILD_ID=dontKillme
#所在目录
WORKSPACE=/data/gyweb
#二进制文件名
BIN_NAME=industry
USER=`whoami`
echo "当前用户:$USER"
echo "要启动的程序:$BIN_NAME"
#判断进程是否存在,如果存在,则需要先kill再启动
PID=`ps -ef | grep ${BIN_NAME} | grep -v grep | grep -v startup | awk '{print \$2}'`
# echo $PID;
if [ ! "$PID" ] ;then
echo "不存在进程"
else
echo "存在进程,PID:$PID,开始kill进程"
while [ "$PID" ]
do
kill -9 $PID
#sleep
sleep 0.05s
# get pid
PID=`ps -ef | grep ${BIN_NAME} | grep -v grep | grep -v startup | awk '{print \$2}'`
# echo "kill后进程PID:$PID"
if [ ! "$PID" ] ;then
echo "kill成功,不存在进程"
else
echo "kill后进程未完全退出,PID:$PID"
fi
done
fi
echo "开始启动服务"
cd ${WORKSPACE}
PWD=`pwd`
echo "当前目录:$PWD"
nohup ${WORKSPACE}/${BIN_NAME} >> ${WORKSPACE}/logs/console.log 2>&1 &
# 检查启动是否成功
PID2=`ps -ef | grep ${BIN_NAME} | grep -v grep | grep -v startup | awk '{print \$2}'`
# echo $PID2;
if [ ! "$PID2" ] ;then
echo "不存在进程,启动失败!"
else
echo "存在进程,PID:$PID2,启动成功!"
fi
二,测试效果:
$ ./startbin.sh
当前用户:webop
要启动的程序:industry
存在进程,PID:1702,开始kill进程
kill成功,不存在进程
开始启动服务
当前目录:/data/gyweb
存在进程,PID:1734,启动成功!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
2023-02-15 thinkphp:允许接口跨域访问(thinkphp v6.0.12LTS)