jvm 옵션 - systemd.unit의 %p가 포함된 Xloggc에서 잘못된 로그 파일 이름이 표시됨

jvm 옵션 - systemd.unit의 %p가 포함된 Xloggc에서 잘못된 로그 파일 이름이 표시됨

Java 프로세스가 있고 다음 옵션을 사용하여 실행하고 싶습니다.

-Xloggc:/var/log/mylog_%p.gc.log

로그 파일 이름에 PID가 포함되도록 합니다. 예를 들어 프로세스의 PID가 3498이면 로그 파일 이름은 /var/log/mylog_pid3498.gc.log.시스템 장치문서. 유닛 파일은 다음과 같습니다.

[Service]
User=ubuntu
Type=simple
WorkingDirectory=/home/ubuntu/my_code
ExecStart=/usr/bin/java -Xloggc:/var/log/mylog_%%p.gc.log -jar my_code.jar
Restart=always

이 문자를 사용하여 %%이스케이프 %했지만 로그 파일에 /var/log/mylog_%p.gc.logJava가 %p실제 PID로 대체 할 수 없는 이름이 있다는 것을 알고 있으므로 예상한 결과가 제공되지 않습니다.

어떤 아이디어가 있나요? 감사해요!

운영 체제:

Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-1066-aws x86_64)

자바 버전:

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

시스템 버전:

systemd 229
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN

고쳐 쓰다

systemctl show -p ExecStart --no-pager my_service
ExecStart={ path=/usr/bin/java ; argv[]=/usr/bin/java -Xloggc:/var/log/mylog_%%p.gc.log -jar my_code.jar ; ignore_errors=no ; start_time=[Tue 2018-11-27 17:08:43 UTC] ; stop_time=[n/a] ; pid=1664 ; code=(null) ; status=0/0 }

관련 정보