项目部署的时候每次都要
先 ps -fC java 找到对应的额Java进程,
然后 kill -9 pid 杀死进程,
再nohup java -jar app.jar &
这样操作一波才能重新部署, 比较麻烦, 下面写一个deploy.sh脚本, 以后每次重新部署项目的时候只需要执行一下deploy.sh脚本即可, 接下来看我怎么操作.
先这么的
在jar包同级目录 vim deploy.sh
然后这么的
#!/bin/bash pid=$(ps -ef | grep "port=8090" | grep -v grep | awk '{print $2}') if [ -n "$pid" ];then kill -9 $pid fi nohup java -jar miaosha-1.0-SNAPSHOT.jar --server.port=8090 & tail -f nohup.out echo "finished"
里面的port=8090的值和miaosha-1.0-SNAPSHOT.jar名字根据自己的项目来替换即可
然后为了保证它能执行, 你这么的
chmod u+x deploy.sh
这样就把他变成一个可执行文件
如果你是在Windows上把deploy.sh文件拷到Linux上的, 执行报错说: 坏的解释器: 没有那个文件或目录
你这么的
sed -i ‘s/\r$//’ deploy.sh
然后再执行 ./deploy.sh
如果你还有各种环境, 需要加上对应的环境, 你这么的
#!/bin/bash pid=$(ps -ef | grep "port=8080" | grep -v grep | awk '{print $2}') if [ -n "$pid" ];then kill -9 $pid fi nohup java -jar app.jar --spring.profiles.active=test --server.port=8080 & tail -f nohup.out echo "finished"
jar包的同级目录你放一个application-test.yml文件, 这样就表示用你指定的这个测试环境的yml配置文件