サービスを介して自動マウント + サービスがフォルダを自動的にマウントしない

サービスを介して自動マウント + サービスがフォルダを自動的にマウントしない

Redhat バージョン 7.2 で次のサービスを作成します。

more nfsshare.mount
[Unit]
  Description=nfs mount script
  Requires=network-online.target
  After=network-online.service

[Mount]

  What=master1:/nfs
  Where=/nfsshare
  Options=noauto,user,rw,group
  Type=nfs
  TimeoutIdleSec=10

[Install]
  WantedBy=multi-user.target

サービスを再起動すると、マウントポイントがそのままマウントされます。

master1:/nfs             41932800 6559744  35373056  16% /nfsshare

今すぐ/ nfsshareフォルダをアンマウントします。

umount /nfsshare

これで、/ nfsshareフォルダが再度マウントされ、サービスが自動的にフォルダをマウントすることが期待されます。

しかし、何も起こらず、フォルダはマウントされません。

ここで私はどこで間違っていますか?

私も頑張ります。

 more nfsshare.automount
[Unit]
  Description=nfs mount script
  Requires=network-online.target
  After=network-online.service

[Automount]
  What=master1:/nfs
  Where=/nfsshare
  Options=noauto,user,rw,group
  Type=nfs
  TimeoutIdleSec=10

[Install]
  WantedBy=multi-user.target

ただし、サービスを再起動した後でもフォルダをマウントすることはできません。

ベストアンサー1

正しい設定は、デバイスに次のものをnfsshare.mount含めることです。

[Unit]
Description=Mount nfsshare
Wants=network-online.target
After=network-online.target

[Mount]
What=master1:/nfs
Where=/nfsshare
Options=rw,group
Type=nfs

以下を含むデバイスの場合nfsshare.automount

[Unit]
Description=Automount nfsshare
Wants=network-online.target
After=network-online.target

[Automount]
Where=/nfsshare
TimeoutIdleSec=10

[Install]
WantedBy=multi-user.target

通常、そのデバイスを有効にしようとします.automount

$ sudo systemctl enable nfsshare.automount

この設定を有効にすると、起動後(NFS共有にアクセスする実行中のデーモンがないと仮定)、共有がいいえインストールされています。ただし、一度アクセスすると(たとえばls /nfsshare)、必要に応じてインストールされます。 10秒間マウントされたままになってからマウント解除されますが、再度アクセスすると再マウントされます。

これら2つのデバイスは一緒に動作.mountし、.automountこの動作を引き起こします。デバイス.automountは、自動マウント用のマウントポイントディレクトリを設定する場所だけを知ることができます。ディレクトリにアクセスすると、同じ名前(同じパス)を持つユニットに対する要求がトリガされ、続行.mountする前にそのユニットが起動するのを待ちます。

よりサイレントインストールデバイスのマニュアルページ詳細については。


自分の設定にどのような変更を加えましたか?

network-online.targetネットワーク依存関係の場合は、存在しないものを使用する必要があります.service。私もWants=この場合に推奨されるディレクティブを使用しています(参照このWikiページネットワーク目標のより深い議論です。 )

インストールオプションからnoautoおよびを削除しましたuser。これは でのみ使用できるためです。また、権限のないユーザーがutilを呼び出してインストールすることを許可するのではなく、/etc/fstab実際にそこにいることを望まないで自動的にインストールすることをお勧めします。 、自動的により良いものをインストールします。usermount

どのユニットで受け取る指示が異なるため(両方のユニットWhere=で受け取る指示を除く)、有効な指示のみを保管します。

このデバイスを有効にする必要がないため、[Install]このデバイスのセクションを削除しました。起動時にデバイスが起動.mountするようにデバイスを有効にするだけで、.automountデバイスは必要に応じて(アクセスしているターゲットディレクトリに応じて)インストールデバイスを起動(および終了)するタスクを処理します。


を使用することもできます。実際には、インストールユニットを作成するよりも構成の/etc/fstabために通常systemdをお勧めします。/etc/fstab

自動マウントに必要なのは、x-systemd.automountそのファイルシステム項目のマウントオプションのリストに擬似オプションを追加することだけです。 (この場合は通常、その/etc/fstab項目も含めたいと思います。)noauto

バラよりArch Linux Wikiのこのセクション詳細については。 (これらのどれもArch Linuxに限定されておらず、RHEL 7でもまったく同じように動作します。)

おすすめ記事