start() {
nohup java $JVM_OPTS -Djava.library.path=conf -Dlogback.configurationFile=conf/logback.groovy -jar lib/production-construction-1.0-SNAPSHOT.jar &
echo -e '\r'
}
这段代码中的 java 后面的参数具体含义是什么?
整个源码
#!/bin/bash
PWDPATH=`dirname $0`
PORTAL_HOME=`cd $PWDPATH && cd .. && pwd`
echo $PORTAL_HOME
cd $PORTAL_HOME
JVM_OPTS="
-server
-Xms3g
-Xmx3g
-XX:NewSize=512m
-XX:SurvivorRatio=6
-XX:+AlwaysPreTouch
-XX:+UseG1GC
-XX:MaxGCPauseMillis=2000
-XX:GCTimeRatio=4
-XX:InitiatingHeapOccupancyPercent=30
-XX:G1HeapRegionSize=8M
-XX:ConcGCThreads=2
-XX:G1HeapWastePercent=10
-XX:+UseTLAB
-XX:+ScavengeBeforeFullGC
-XX:+DisableExplicitGC
-XX:+PrintGCDetails
-XX:-UseGCOverheadLimit
-XX:+PrintGCDateStamps
-Xloggc:logs/gc.log
"
start() {
nohup java $JVM_OPTS -Djava.library.path=conf -Dlogback.configurationFile=conf/logback.groovy -jar lib/production-construction-1.0-SNAPSHOT.jar &
echo -e '\r'
}
start >> logs/console.log 2>> logs/console.log
nohup
不挂断运行,就是你即使注销了账户,后边的Java
进程也会一直运行;$JVM_OPTS
引用前面定义的变量,那一堆是JVM
的参数;-D<name>=<value>
是设置属性,所以设置了java.library.path
和logback.configurationFile
两个属性,值分别为conf
和conf/logback.groovy
。即设置了此次path
的路径为conf
,而配置文件即conf
下的logback.groovy
;-jar <jar file>
是运行指定的jar
文件;nohup ... & echo -e '\r'
是把JVM
的启动信息输出到标准输出流;start >> logs/console.log ...
是把start()
的输出重定向至指定文件。