На моем Raspbian (на базе Debian Jessie) мне нужно запустить при загрузке rpcbind
и nfs-common
службы, поскольку мне нужно, чтобы они запускались autofs
при загрузке для монтирования NFS.
Поскольку Debian Jessie теперь перешел на systemd
, я хочу узнать, как лучше всего запускать эти 3 службы (rpcbind, nfs-common, autofs) в правильном порядке, чтобы избежать проблем.
Если я вручную монтирую общий ресурс NFS, то все работает. И это также работает при использовании службы autofs с уже запущенными и работающими rpcbind и nfs-common.
autofs использует скрипт юнита systemd. Что касается двух других служб, мне нужно сделать скрипты init.d или мне нужно создать файлы юнитов systemd? Как мне их написать?
решение1
Причиной проблемы является отсутствиесистемдФайлы конфигурации. База напост Мэтта Грантавот debian-devel
шаги, которые вам необходимо выполнить.
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