나는 아직도 systemd에 익숙해 져 있고 무언가에 부딪쳤다. 그리 큰 문제는 아니지만이 방법에 대해 더 배우고 싶습니다. 나는 다른 곳에서 이것에 대한 언급을 찾을 수 없었다.
먼저 서비스의 사용자 지정 단위 파일이에 있어야한다는 것을 이해합니다 /etc/systemd/system
. 그러나 단위 파일을 다른 곳에 배치 할 수 있다면 서버 관리에 좋습니다.
설명서에서 다음과 같이 단위 파일을 '링크'할 수 있음을 알았습니다.
systemctl link /path/to/servicename.service
위의 링크가 생성됩니다 /etc/systemd/system
. 이제이 서비스를 시작 / 중지 할 수 있습니다. 표면적으로 이것은 우리가 서비스를 관리하는 좋은 방법 인 것 같습니다.
그러나 이러한 '링크 된'유닛 파일을 활성화하려고하면 실패합니다.
root@test1:/etc/systemd/system# systemctl link /root/myservice.service
Created symlink from /etc/systemd/system/myservice.service to /root/myservice.service.
root@test1:/etc/systemd/system# systemctl status myservice.service
* myservice.service - My Test Service
Loaded: loaded (/root/myservice.service; linked; vendor preset: enabled)
root@test1:/etc/systemd/system# systemctl enable myservice.service
Failed to execute operation: No such file or directory
정확히 동일한 단위 파일을 사용하지만 /etc/systemd/system
링크 된 대신에 복사 하면 다음을 얻을 수 있습니다.
root@test1:/etc/systemd/system# cp -p /root/myservice.service .
root@test1:/etc/systemd/system# systemctl daemon-reload
root@test1:/etc/systemd/system# systemctl status myservice.service
* myservice.service - My Test Service
Loaded: loaded (/etc/systemd/system/myservice.service; disabled; vendor preset: enabled)
root@test1:/etc/systemd/system# systemctl enable myservice.service
Created symlink from /etc/systemd/system/multi-user.target.wants/myservice.service to /etc/systemd/system/myservice.service.
이로 인해 시스템 시작시 링크 된 단위 파일을 호출 할 수 없습니다.
이 경우 '링크'기능의 요점은 무엇입니까? 문서에서 다음과 같이 말합니다.
FILENAME 연결
장치 파일 검색 경로에없는 장치 파일을 장치 파일 검색 경로에 연결하십시오. 이것은 유닛 파일의 절대 경로를 요구합니다. 비활성화하면이 효과를 취소 할 수 있습니다. 이 명령의 효과는 장치 파일이 장치 검색 경로에 직접 설치되지 않더라도 시작 및 기타 명령에 사용할 수 있다는 것입니다.
systemctl enable
도 할 것입니다systemctl link
필요가 ;-) 2 개 명령을 입력하지 않으려면, 그래서