web-dev-qa-db-ja.com

Debian Jessieはsystemdでの起動時にrpcbindとnfs-commonを起動します

私のRaspbian(Debian Jessieベース)では、NFSマウントのブート時にrpcbindを開始する必要があるため、ブートautofsおよびnfs-commonサービスから開始する必要があります。

Debian Jessieがsystemdに移動したので、問題を回避するためにこれらの3つのサービス(rpcbind、nfs-commond、autofs)を正しい順序で開始するための最良の方法を知りたいです。

NFS共有を手動でマウントした場合は機能します。また、rpcbindとnfs-commonがすでに稼働しているautofsサービスを使用している場合にも機能します。

autofsはsystemdユニットスクリプトを使用します。他の2つのサービスについては、init.dスクリプトを作成する必要がありますか、それともsystemdユニットファイルを作成する必要がありますか?どうすればそれらを書くことができますか?

4
Cheshire Cat

この問題の原因は、systemd構成ファイルがないことです。 debian-develの-​​ Matt Grantによる投稿 に基づいて、これらの手順を実行する必要があります。

1. /etc/systemd/system/nfs-common.serviceを作成します

cat >/etc/systemd/system/nfs-common.service <<\EOF
[Unit]
Description=NFS Common daemons
Wants=remote-fs-pre.target
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/init.d/nfs-common start
ExecStop=/etc/init.d/nfs-common stop

[Install]
WantedBy=sysinit.target
EOF

2. /etc/systemd/system/rpcbind.serviceを作成します

cat >/etc/systemd/system/rpcbind.service <<\EOF
[Unit]
Description=RPC bind portmap service
After=systemd-tmpfiles-setup.service
Wants=remote-fs-pre.target
Before=remote-fs-pre.target
DefaultDependencies=no

[Service]
ExecStart=/sbin/rpcbind -f -w
KillMode=process
Restart=on-failure

[Install]
WantedBy=sysinit.target
Alias=portmap
EOF

3. /etc/tmpfiles.d/rpcbind.confを作成します

cat >/etc/tmpfiles.d/rpcbind.conf <<\EOF
#Type Path        Mode UID  GID  Age Argument
d     /run/rpcbind 0755 root root - -
f     /run/rpcbind/rpcbind.xdr 0600 root root - -
f     /run/rpcbind/portmap.xdr 0600 root root - -
EOF

4.起動時に実行するようにサービスを構成する

systemctl enable rpcbind.service
systemctl enable nfs-common
5