bash 파일을 호출하여 Java 프로그램을 실행하는 Ubuntu 22.04 랩톱에서 시스템 서비스를 만들었습니다.
[Unit]
Description=Script to run JMS
[Service]
ExecStart=bash /home/user/Desktop/path_to_my_file/run_java.sh
[Install]
WantedBy=run_jms.target
이 프로세스를 시작하면 Java 프로그램에서 생성된 모든 파일이쓰기 금지됨. 그러나 명령줄에서 bash 파일을 직접 실행하면 결과 파일이쓰기 방지 없음.
systemd 서비스가 쓰기 금지된 파일을 생성하는 것을 방지하는 방법은 무엇입니까?
답변1
User
에 지정하지 않으면 서비스 [Service]
의 출력이 다른 사용자에게 속할 수 있으므로 쓰기 금지된 것으로 나타날 수 있습니다. 이 문제를 해결하려면 다음 줄을 추가하면 됩니다.
[Service]
ExecStart=bash /home/user/Desktop/path_to_my_file/run_java.sh
User=user