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
コピーを作成することです。/etc/systemd/system
これはトリックを行う必要があります。