시작할 수 없지만 서비스를 활성화하고 시작할 수 있습니다.

시작할 수 없지만 서비스를 활성화하고 시작할 수 있습니다.

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.servicesystemd가 시작될 때 마운트되는 파티션에 있어야 합니다. 이는 귀하가 언급한 설명에서와 같이 귀하의 예에서는 그렇지 않습니다. 자체 파티션 중간 아래에 /srv심볼릭 링크가 있습니다 ./home

이는 최근 보고서인 시스템 버그 보고서에 자주 나타납니다.여기.

참조(최근 업데이트)systemctl 매뉴얼 페이지그것은 다음과 같이 말합니다:

systemd가 시작되면 링크 단위 파일이 있는 파일 시스템에 액세스할 수 있어야 합니다. 예를 들어 /home 또는 /var 아래의 모든 디렉터리는 이러한 디렉터리가 루트 파일 시스템에 있지 않으면 허용되지 않습니다.

권장되는 해결 방법은 심볼릭 링크 대신 strelaysrv.serviceunder의 복사본을 만드는 것입니다 . /etc/systemd/system이것은 트릭을 수행해야합니다.

관련 정보