为项目编写start.sh,stop.sh

来源:互联网 发布:青岛永诚网络 编辑:程序博客网 时间:2024/06/06 09:58

最近项目中用到了,使用java -jar 命令启动项目,要求编写start .sh 和 stop.sh文件,就研究了一下下。


#start.sh 与项目打的jar包放到同一目录

nohup java -jar abc-1.0-SNAPSHOT.jar -Dfile.encoding=utf-8 -server  -XX:+UseG1GC -Xms4g -Xmx4g -XX:+PrintGC -XX:+PrintGCTimeStamps -Xloggc:gc.log  nohup.log 2>&1 &

#将pid写入文件中,但是一定要让pid是可read,write    可以 chmod a+rw abc.pid

echo $! > /data/abc/abc.pid 



#说明 1、nohup [command] &    以nohup开头,以&结尾,中间为要执行的命令参数
# 2、java -jar 需要执行的jar路径(可以为全路径) ,一个普通的java -jar命令
# 3、-Dfile.encoding=utf-8 改变jdk处理文件等的默认字符编码 ,若项目中没用指明编码,若指明则以指定编码为准,如:方法 OutputStreamWriter(OutputStream out,String charsetName)
# 4、-server   JAVA_OPTS参数设置
# -XX:+UseG1GC 设定内存的永久保存区域
# -Xms4g JVM Heap(堆内存)最小尺寸128MB,初始分配
# -Xmx4g JVM Heap(堆内存)最大允许的尺寸256MB,按需分配
# -XX:+PrintGC 与-verbose:gc含义一样,开启简单GC日志模式,为每一次新生代(young generation)的GC和每一次的Full GC打印一行信息
# -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
# -Xloggc:gc.log 日志文件的输出路径
# 其他信息如下:
# -XX:+PrintGC 输出GC日志
# -XX:+PrintGCDetails 输出GC的详细日志
# -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
# -XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
# 5、nohup.log nohup命令的日志输出
# 6、2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)

# 7、在spring boot的打包项目下有application.yml的配置信息,其中有很多数据等的配置信息,为了方便修改可以copy一份到与jar包平级的目录,修改重启生效(不用在打jar包)。


#stop.sh 相对简单,我们可以使用jps 或 ps -ef|grep java 查看启动的进程  然后再 kill 进程号  也可以先用cat命令获取pid进程号 再进行kill

#!/bin/shPID=$(cat /data/abc/abc.pid)kill -9 $PID

原创粉丝点击