关于部署脚本的问题
来源:4-7 通过shell脚本启动gin服务
爱吃apple的阿狸
2023-04-10 15:12:31
老师给的脚本有点问题啊,
if ps -a | grep $srv_name | awk '{print $1}' | xargs kill $1
这里的命令杀不掉我的服务,我拿这条命令直接在机器上执行也不行,我发现 ps -a | grep xxx, 这里就找不到进程。 ps -a这个命令貌似不能显示所有进程,不知道为啥。。
我直接把脚本前面的这条获取Pid的命令拿来用了:
pgrep -x $srv_name
我改后的脚本,这样貌似就可以了
#!/bin/bash srv_name="goods_web_main" chmod +x ./$srv_name #重启,如果已经存在则关闭重启 pid=$(pgrep -x $srv_name) if [ "$pid" ]; then echo "${srv_name} is running" echo "shutting down ${srv_name}" kill -15 "$pid" echo "starting ${srv_name}" ./$srv_name > /dev/null 2>&1 & echo "start ${srv_name} success" else echo "starting ${srv_name}" ./$srv_name > /dev/null 2>&1 & echo "start ${srv_name} success" fi
还有个问题,如果通过sshPublisher这个插件把项目传输到部署服务器上后:
多次构建,部署服务器上的target/** 这些文件已经存在了,不会覆盖存在的文件,
我后续点击构建,返回结果都是黄色的,console里面报:
ERROR: Exception when publishing, exception message [Failure]
Finished: UNSTABLE
使用ls -l 查看部署服务器上的文件,发现时间都没变过。。
相当于传输文件失败。。。
我的解决办法是加个个清除远端的代码,这样每次都会先把之前传输的文件删掉了。
这是我踩的两个坑~
1回答
bobby
2023-04-12
赞一个。。
相似问题