Java工程在Linux中部署
java启动的命令
- 1.java -jar ${JAR_NAME}
- 2(推荐).java -cp ${CLASSPATH} ${MAIN_CLASS_PATH}
第一种方式执行时,jar包中必须设置主函数(maven在pom中配置主函数),执行成功后进程名为jar,进程多了进程名不好分辨,不推荐使用。
在我的工作当中,很多人写启动脚本只写java一条命令,这样很不安全,很多不懂代码的运维人员不杀进程就启动,会造成启动多个进程的情况。
启动程序需要注意事项:
- 设置GC输出日志,方便GC调优
- 设置dump输出日志,当程序内存溢出时转储的镜像文件,打开工具推荐mat、ha
- 设置CLASSPATH,除了jar包,程序主目录也要加上
- java参数
- -Xms 堆内存初始大小
- -Xmx 堆内存最大值
- -Xmn 堆内存年轻代大小
- -Dlog4j.configuration 设置日志配置文件,注意日志配置文件不要打到jar里面,在外面方便DEBUG调试
- 使用nohup启动时,除了生成程序日志外,还有nohup日志,建议把nohup日志输出到/dev/null(linux黑洞)
- 做程序启动是否成功的判断
停止程序需要注意事项:
- 使用kill pid,建议不要加-9强制停止,否则ShutdownHook不会执行
下面附上我的启动、停止进程的脚本,有重复代码,可以适当修改