시스템 서비스를 명시적으로 호출하면 환경 파일이 고려되지 않습니다.

시스템 서비스를 명시적으로 호출하면 환경 파일이 고려되지 않습니다.

systemd다음 단위 파일이 있습니다

$ cat /etc/systemd/system/myservice.service

[Unit]
Description = My Service

[Service]
ExecStart = /bin/sh -c 'exec /usr/local/bin/myservice [arguments] >>/var/log/myservice/log.log 2>>/var/log/myservice/err.log'
EnvironmentFile = /etc/myservice/config
User = someuser
Group = somegroup

[Install]
WantedBy = multi-user.target

내 로그가 꽤 오래되었기 때문에 리디렉션 형식( ) systemd을 사용하고 있습니다 .232

이 서비스를 로 호출하고 싶어서 systemd run다음을 입력하고 있습니다.

sudo systemd-run myservice
Running as unit: run-rac9ffa945b374f2fa8a8273567427005.service

그러나 실행 로그에 표시됩니다.

a) EnvironmentFile = /etc/myservice/config전혀 고려하지 마세요

b) 로그가 생성되지 않습니다./var/log/myservice/

이 질문이 말이 되나요?

답변1

systemd-run에 지정된 서비스가 시작되지 않고 단지 임시 단위로 실행되기 /etc/systemd/system/myservice.service때문에 해당 단위가 대신 호출됩니다./usr/local/bin/myservicerun-rac9ffa945b374f2fa8a8273567427005.servicemyservice.service

를 실행하려면 ( 유닛 파일을 방금 작성한 경우 실행 후)를 /etc/systemd/system/myservice.service사용하세요 .systemctl start myservice.servicesystemctl daemon-reload

관련 정보