내 C++ 응용 프로그램을 실행하는 .service가 있습니다. 내 경로는 절대 경로입니다. 명령줄을 통해 시작하면 작동하지만 systemd 서비스를 통해 시작하면 파일을 열 수 없습니다. 내 서비스가 루트로 실행 중인데도 서비스의 출력은 오류 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
이 문제에 대한 해결책이 있습니까?