내 시스템 서비스가 쓰기 금지된 파일을 생성하는 이유는 무엇입니까?

내 시스템 서비스가 쓰기 금지된 파일을 생성하는 이유는 무엇입니까?

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

관련 정보