java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50050 -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./ -jar ${JAR_NAME} >/dev/null 2>&1 &
参数说明
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=50050: 这个参数用来启动JDWP代理,它允许远程调试。具体设置为:
transport=dt_socket: 使用TCP套接字作为传输机制。
server=y: 指定JVM作为调试服务器,等待调试客户端连接。
suspend=n: 应用在启动后不会暂停,直接运行。如果是suspend=y,则JVM会在启动时暂停,直到调试器连接。
address=50050: 指定调试端口为50050。
-Xmx1536m: 设置JVM最大堆内存为1536MB。这限制了应用可以使用的最大内存量,有助于防止内存溢出。
-XX:+HeapDumpOnOutOfMemoryError: 当发生OutOfMemoryError时,自动创建堆转储快照(heap dump),这对于分析内存泄漏非常有用。
-XX:HeapDumpPath=./: 指定堆转储文件生成的目录为当前目录。这意味着当发生OOM时,堆转储文件将直接在应用执行的当前目录下生成。
-jar ${JAR_NAME}: 启动指定的jar包应用。${JAR_NAME}应该被替换为你的应用jar文件的实际名称。
>/dev/null 2>&1: 将标准输出(STDOUT)和标准错误(STDERR)都重定向到空设备,意味着不显示任何输出。这使得应用在后台静默运行。
&: 使命令在后台运行。