strelaysvr에 대한 서비스를 만들었습니다.
[Unit]
Description=Syncthing Relay Server
After=network.target
[Service]
ExecStart=/usr/bin/strelaysrv -keys /srv/strelaysrv/keys
User=strelaysrv
[Install]
WantedBy=multi-user.target
그리고 넣어/srv/strelaysvr/strelaysvr.service, 나는 심볼릭 링크를 걸었습니다/etc/systemd/시스템.
그런 다음 계속 편집 systemctl enable
하고 systemctl start
편집하면 재부팅할 때까지 모든 것이 잘 작동합니다. 그 후에는 "사라지는" 것 같습니다.
root@here:~# systemctl start strelaysrv
Failed to start strelaysrv.service: Unit strelaysrv.service not found.
root@here:~# ll /etc/systemd/system/strelaysrv.service
lrwxrwxrwx 1 root root 34 Apr 2 22:59 /etc/systemd/system/strelaysrv.service -> /srv/strelaysrv/strelaysrv.service
root@here:~# ll /etc/systemd/system/multi-user.target.wants/strelaysrv.service
lrwxrwxrwx 1 root root 34 Apr 2 23:00 /etc/systemd/system/multi-user.target.wants/strelaysrv.service -> /srv/strelaysrv/strelaysrv.service
root@here:~# ll /srv/strelaysrv/strelaysrv.service
-rw-r--r-- 1 root root 185 Apr 2 22:58 /srv/strelaysrv/strelaysrv.service
하지만 호출이 성공하면 systemctl enable
다시 시작할 수 있습니다! 내가 뭘 잘못했나요? 시스템 오류가 발생했나요?
root@here:~# lsb_release -a |& grep escr
Description: Debian GNU/Linux 9.4 (stretch)
root@here:~# dpkg -s systemd | grep ersion
Version: 232-25+deb9u3
답변1
단위 파일(이 경우 strelaysrv.service
systemd가 시작될 때 마운트되는 파티션에 있어야 합니다. 이는 귀하가 언급한 설명에서와 같이 귀하의 예에서는 그렇지 않습니다. 자체 파티션 중간 아래에 /srv
심볼릭 링크가 있습니다 ./home
이는 최근 보고서인 시스템 버그 보고서에 자주 나타납니다.여기.
참조(최근 업데이트)systemctl 매뉴얼 페이지그것은 다음과 같이 말합니다:
systemd가 시작되면 링크 단위 파일이 있는 파일 시스템에 액세스할 수 있어야 합니다. 예를 들어 /home 또는 /var 아래의 모든 디렉터리는 이러한 디렉터리가 루트 파일 시스템에 있지 않으면 허용되지 않습니다.
권장되는 해결 방법은 심볼릭 링크 대신 strelaysrv.service
under의 복사본을 만드는 것입니다 . /etc/systemd/system
이것은 트릭을 수행해야합니다.