在与jar包同级的目录下,新建start.sh文件,在文件中输入如下脚本,运行./start.sh文件即可自动化部署jar包:
ps -ef | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9 nohup java -jar xxx.jar > nohup.out 2>&1 & tail -fn 500 nohup.out命令详解: 1、ps -ef | grep xxx:此处的xxx表示jar包的全称,如test.jar,表示搜索test.jar的进程; 2、grep -v grep:在前面搜到的test.jar的进程中,去掉包含grep的文件进程,以免误杀; 3、awk ‘{print $2}’ : 一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段(第1句中搜到的进程第二个字段是pid,所以此处打印第二个字段); 4、xargs kill -9:将第三句中打印的字段值,逐个传递给kill -9作为参数,即杀死第三句中查找到的pid进程; 5、nohup java -jar xxx.jar > nohup.out 2>&1 &:运行test.jar包,标准输出和错误输出均输出到nohup.out文件; 6、tail -fn 500 nohup.out:查看nohup.out文件里的后500行,即查看test.jar的输出日志。
注意:新建start.sh文件后,要为此文件赋予可执行的权限:
chmod +x xxx.sh