bash 스크립트를 서비스로 만든 것은 이번이 처음이며 Java 인수에 대한 텍스트 파일(user_jvm_args.txt)을 열 수 없기 때문에 서비스가 실패했다는 오류가 발생했습니다. 어떤 종류의 권한 문제가 있다고 생각하지만 헤매고 있습니다. 더 나아지고 배우려고 노력하면 무엇이든 도움이 됩니다. 감사해요!
서비스 파일은 다음과 같습니다.
[Service]
ExecStart=/home/ethan/ATM9-Server/run.sh
run.sh bash 스크립트는 다음과 같습니다.
#!/usr/bin/env sh
java @user_jvm_args.txt @libraries/net/minecraftforge/forge/1.20.1-47.1.3/unix_args.txt "$@"
다음은 run.sh 스크립트와 동일한 폴더에 있는 user_jvm_args.txt 파일입니다.
# Xmx and Xms set the maximum and minimum RAM usage, respectively.
# They can take any number, followed by an M or a G.
# M means Megabyte, G means Gigabyte.
# For example, to set the maximum to 3GB: -Xmx3G
# To set the minimum to 2.5GB: -Xms2500M
# A good default for a modded server is 4GB.
-Xms1G
-Xmx10G
-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1
대부분은 기본값이며, 제가 변경한 것은 -Xms와 -Xmx뿐입니다.
로그에 표시된 대로 발생한 오류는 다음과 같습니다.
Nov 03 15:44:43 ATM9-Server-Temp systemd[1]: Started run.service.
Nov 03 15:44:43 ATM9-Server-Temp run.sh[12480]: Error: could not open `user_jvm_args.txt'
Nov 03 15:44:43 ATM9-Server-Temp systemd[1]: run.service: Main process exited, code=exited, status=1/FAILURE
Nov 03 15:44:43 ATM9-Server-Temp systemd[1]: run.service: Failed with result 'exit-code'.
답변1
사용자, 그룹 및 작업 디렉터리를 추가하면 문제 없이 시작할 수 있다는 사실이 밝혀졌습니다!