您的位置:首页 > 运维架构

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

2017-05-21 12:16 190 查看
最近项目中用到了,使用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.lognohup命令的日志输出# 6、2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)# 7、在spring boot的打包项目下有application.yml的配置信息,其中有很多数据等的配置信息,为了方便修改可以copy一份到与jar包平级的目录,修改重启生效(不用在打jar包)。#stop.sh 相对简单,我们可以使用jps 或 ps -ef|grep java 查看启动的进程  然后再 kill 进程号  也可以先用cat命令获取pid进程号 再进行kill
#!/bin/sh
PID=$(cat /data/abc/abc.pid)
kill -9 $PID

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  start.sh linux