システムサービスが書き込み禁止ファイルを生成するのはなぜですか?

システムサービスが書き込み禁止ファイルを生成するのはなぜですか?

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

関連情報