Systemdサービスは絶対パスを持つファイルを開くことができません。

Systemdサービスは絶対パスを持つファイルを開くことができません。

私のC ++アプリケーションを実行する.serviceがあります。私のパスは絶対パスです。コマンドラインから起動すると機能しますが、systemdサービスから起動するとファイルを開くことはできません。私のサービスがrootとして実行されていても、サービスの出力はエラー13(許可拒否)です。

サービスステータス:

● myservice.service - myservice
   Loaded: loaded (/etc/systemd/system/myservice.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-14-11 08:03:54 PST; 6s ago
 Main PID: 105618 (myservice)
 CGroup: /system.slice/myservice.service
         105618 /etc/EPR/bin/manage
Dec 11 08:03:54 BK systemd[1]: Started myservice.
Dec 11 08:03:55 BK systemd[1]: Unable to write log to file 13

C++コード:

void write_log_to_file(string file_name, string content){
    ofstream handle_file(file_name, ios::app);
    if(handle_file.is_open()){
        string log = string("[") + dkstd::time::get_time_as_string("%d/%m/%Y %H:%M:%S") + string("]: ") + content;
        handle_file << log << endl;
        handle_file.close();
    }
    else cout << "Unable to write log to file " << file_name << errno << endl;
}

提供する:

[Unit]
Description=Manage

[Service]
Type=simple
ExecStart=/etc/EPR/bin/manage
KillMode=process

[Install]
WantedBy=multi-user.target

この問題に対する解決策はありますか?

ベストアンサー1

おすすめ記事