![시스템 서비스를 명시적으로 호출하면 환경 파일이 고려되지 않습니다.](https://linux55.com/image/197819/%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC%20%EB%AA%85%EC%8B%9C%EC%A0%81%EC%9C%BC%EB%A1%9C%20%ED%98%B8%EC%B6%9C%ED%95%98%EB%A9%B4%20%ED%99%98%EA%B2%BD%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EA%B3%A0%EB%A0%A4%EB%90%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
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/myservice
run-rac9ffa945b374f2fa8a8273567427005.service
myservice.service
를 실행하려면 ( 유닛 파일을 방금 작성한 경우 실행 후)를 /etc/systemd/system/myservice.service
사용하세요 .systemctl start myservice.service
systemctl daemon-reload