美文网首页
Linux上Java程序的启动关闭脚本

Linux上Java程序的启动关闭脚本

作者: 帮我的鸵鸟盖个章 | 来源:发表于2019-01-08 14:00 被阅读0次

Java项目icarus.jar放在Linux文件夹/home/java/icarus里面。该文件夹下又有start.shshutdown.sh两个脚本来启动和关闭icarus.jar项目。

如果不使用脚本,使用命令

java -jar icarus.jar --config.profile=test --spring.cloud.config.uri=http://10.66.67.163:8888 --port=8083

可以启动项目,但是不能关闭shell,不然的话程序也就停止了。要关闭项目,可以使用Ctrl+c,回到命令行,即可停止程序。

若要执行脚本文件,需给脚本赋权限,执行chmod +x filename(或chmod 755 filenme)命令来获得可执行权限

启动脚本

  1. 启动项目命令:./start.sh icarus.jar

  2. start.sh内容

    #!/bin/bash
    file=$(basename $1)
    nohup java -jar $file --config.profile=test --spring.cloud.config.uri=http://10.26.61.123:8888  --port=8083 > /dev/null 2>&1 &
    tail -f logs/spring.log
    ~ 
    
  3. 详解

    1. #!/bin/bash :指此脚本使用/bin/bash来解释执行
    2. $(basename $1) :获取第一个参数。./start.sh icarus.jar的第一个参数为icarus.jar
    3. nohup :不挂断地运行命令。
    4. > /dev/null 2>&1 :``> /dev/null的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。> /dev/null 2>&1` 把标准输出1重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”
    5. & :在后台运行。一般nohup&两个一起用
    6. tail -f logs/spring.log :监视logs/spring.log文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C

停止脚本

  1. 停止项目命令:./shutdowm.sh icarus.jar

  2. shutdowm.sh内容

    #!/bin/bash
    file=$(basename $1)
    ps -ef | grep $file |grep -v grep | awk '{print $2}' |xargs kill -9
    
  3. 详解

    1. ps -ef :显示所有的进程,其中后面的e是显示结果的意思,f是显示完整格式
    2. | :管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入
    3. grep $file :查找含有指定文本行,即查找含有$file的文本的行
    4. grep -v grepgrep -v 是反向查找,grep -v grep 就是查找不含有 grep 字段的行
    5. awk '{print $2}' :提取输入的第二列,而第二列是进程的PID
    6. xargs :通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令(即kill -9),作为后面命令的命令行参数。即进程的PID
    7. kill -9 :强制杀死该进程。后面的参数已经通过xargs传送过来

这里只是记录了启动停止部署在Linux上的Java项目基本脚本,我也不懂这些,只是学了如何在Linux上部署公司的项目,看到不懂的就去查一查,对自己的无知感到很无奈。

相关文章

网友评论

      本文标题:Linux上Java程序的启动关闭脚本

      本文链接:https://www.haomeiwen.com/subject/xrwvrqtx.html