Java在Linux的启动脚本

展示示例

#!/bin/bash
LIB_DIR=../lib
LIB_JARS=`ls $LIB_DIR|grep ".jar$"|awk '{print "'$LIB_DIR'/"$0}'|tr "\n" ":"`
LOG_NAME=sychronizeOa
CONF_DIR=../conf/
CONF_LOG=../log
nohup java -server -Xms512m -Xmx512m -XX:PermSize=128m -classpath $CONF_DIR:$LIB_JARS -Djava.security.egd=file:///dev/urandom -DLOG.DIR=$CONF_LOG -DLOG.NAME=$LOG_NAME -Dhttps.protocols=TLSv1.1,TLSv1.2 com.tydic.fj.synchron.SynchronApp >$CONF_LOG/sychronizeOa-nohup.log 2>&1 &

命令解释

nohup
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
示例:
nohup java -jar BiuBiuBiu.jar >output 2>&1 &
解释:

  1. 带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上);
  2. 2>&1
    这个意思是把标准错误2重定向到标准输出中1,而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的。
    一般不需要查看日志的就直接丢掉丢掉:
nohup java -jar BiuBiuBiu.jar >/dev/null 2>&1 &

java启动参数共分为三类;
其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用;
-jar
指定以jar包的形式执行一个应用程序。
要这样执行一个应用程序,必须让jar包的manifest文件中声明初始加载的Main-class,当然那Main-class必须有public static void main(String[] args)方法。
-Xms10m
设置堆最小值为10M
-Xmx10m
设置堆最大值为10M
-Xmn10m
设置年轻代大小为10M
-XX:PermSize分配非堆最小内存,默认为物理内存的1/64;-XX:MaxPermSize分配非堆最大内存,默认为物理内存的1/4。

猜你喜欢

转载自blog.csdn.net/weixin_42119415/article/details/105684646
今日推荐