Özet
nfsd [command]
nfsd [-F exports_file] checkexports
nfsd [-NRrtuv] [-F exports_file] [-n num_servers] [-p nfsport] [-P mountport] [command]
Açıklama
nfsd, NFS istemci makinelerinden gelen NFS ve MOUNT protokolü isteklerine hizmet vermek için bir NFS sunucu makinesinde çalışır. Bir makinenin NFS sunucusu olarak hareket edebilmesi için bir NFS dışa aktarma (export) dosyasının, yani /etc/exports dosyasının var olması ve nfsd servisinin etkinleştirilmesi gerekir.
nfsd, NFS sunucu spesifikasyonunda belirtilen bağlantı noktasında (2049) NFS servis isteklerini dinler ve mountd iş parçacığı, portmap(8) ile kaydedilmiş kullanılabilir bir bağlantı noktasında MOUNT servis isteklerini dinler.
NFS ve MOUNT protokolleri hakkında daha fazla bilgi için Network File System Protocol Specification, RFC1094 ve NFS: Network File System Version 3 Protocol Specification belgelerine bakın.
nfsd arka plan programı, NFS isteklerini işleyen bir dizi iş parçacığı, yeni soket bağlantılarını kabul eden bir iş parçacığı ve NFS MOUNT protokolü isteklerini işleyen bir iş parçacığı içeren çok iş parçacıklı (multi-threaded) bir süreçtir.
nfsd başlatıldığında, nfssvc(2) sistem çağrısını kullanarak dışa aktarma ana bilgisayar (host) adreslerini ve seçeneklerini çekirdeğe yükler. Dışa aktarma listesini değiştirdikten sonra (doğrudan veya dolaylı olarak netgroup üyeliğindeki bir değişiklik yoluyla), dışa aktarma bilgilerini yeniden yüklemesini sağlamak için arka plan programına bir kapatma (hangup) sinyali gönderilmelidir. Bu, aşağıda açıklanan update komutuyla gerçekleştirilebilir.
Dışa aktarma girdileri işlenirken karşılaşılan tüm hatalar syslog(3) aracılığıyla günlüğe kaydedilecektir.
nfsd normalde launchd(8) tarafından başlatılır; ancak nfsd komutu, aşağıdaki komutları kullanarak servisi yönetmek için de kullanılabilir:
enable nfsd servisini etkinleştirir.
disable nfsd servisini devre dışı bırakır.
start nfsd servisini başlatır. Not: servis devre dışı bırakılmışsa, sistem yeniden başlatıldığında yeniden başlamaz. Değişikliği kalıcı hale getirmek için enable komutunu kullanın.
stop nfsd servisini durdurur. Not: servis etkinleştirilmişse, sistem yeniden başlatıldığında yeniden başlatılır. Değişikliği kalıcı hale getirmek için disable komutunu kullanın.
restart nfsd servisini yeniden başlatır (servisi durdurarak - eğer /etc/exports dosyası mevcutsa otomatik olarak yeniden başlayacaktır).
update Çalışan nfsd arka plan programına, yapılandırmasını güncellemesini sağlamak için bir SIGHUP sinyali gönderir.
status nfsd servisinin etkin olup olmadığını ve nfsd arka plan programının o anda çalışıp çalışmadığını görüntüler.
checkexports Dışa aktarma dosyasını kontrol eder ve hataları (stderr'e) raporlar. Değişiklikleri uygulamaya koymadan ve nfsd'yi güncellemeden önce alternatif bir dışa aktarma dosyasının geçerliliğini (aşağıdaki -F seçeneğini kullanarak) doğrulamak için bunun yararlı olabileceğini unutmayın.
verbose [up|down]+ Çalışan nfsd arka plan programına, günlük kaydı (logging) düzeyini artırmasını ve/veya azaltmasını sağlamak için USR1 ve/veya USR2 sinyallerini gönderir. (nfsd'nin günlük kaydı hakkındaki ayrıntılar için aşağıya bakın).
Günlük kaydı, LOG_DAEMON olanağı kullanılarak syslog(3) aracılığıyla gerçekleştirilir. Varsayılan olarak yalnızca LOG_WARNING önceliğine kadar olan mesajlar günlüğe kaydedilir. Verbose seviyesini bire ayarlamak, başarısız bağlama girişimlerinin günlüğe kaydedilmesini de içeren LOG_NOTICE mesajlarını ekleyecektir. İki seviyeli bir verbose düzeyi, günlük seviyesini başarılı bağlama girişimlerinin günlüğe kaydedilmesini de içeren LOG_INFO düzeyine yükseltir. Üç veya daha yüksek bir günlük seviyesi, LOG_DEBUG mesajlarını ekleyecek ve artan miktarda hata ayıklama bilgisinin günlüğe kaydedilmesine neden olacaktır. Hata ayıklama bilgisi, nfsd'nin iç işleyişi hakkında genellikle yalnızca geliştiriciler için yararlı olan birçok bilgiyi açığa çıkarır. Not: Artan ayrıntı düzeyini görebilmek için syslog(8) yapılandırmasının ayarlanması gerekebilir.
nfsd aracı başarı durumunda 0, bir hata oluşursa >0 ile çıkış yapar. status komutu verildiğinde, servis etkinse 0, servis devre dışıysa 1 ile çıkış yapar.
Aşağıda mevcut olan komut satırı seçeneklerinin bir listesi bulunmaktadır. Ancak nfsd normalde launchd(8) tarafından başlatıldığından, bu seçeneklerin yapılandırılması NFS yapılandırma dosyasındaki (bkz. nfs.conf(5)) eşdeğer ayarlar kullanılarak kontrol edilmelidir.
-F exports_file exports_file argümanı, dışa aktarma dosyası için alternatif bir konum belirtir (checkexports komutuyla kullanışlıdır).
-N: root olmayan bağlama isteklerine hizmet verilmesine izin verir. Bu, yalnızca bunu gerektiren istemciler varsa belirtilmelidir.-P #: MOUNT servisi için hangi bağlantı noktasının kullanılacağını belirtir.-R: Normal dosyalar için bağlama RPC isteklerine hizmet verilmesine izin verir. Bu durum bağlama protokolü spesifikasyonunu ihlal ediyor gibi görünse de, bazı disksiz iş istasyonları swap (takas) dosyaları için bağlama istekleri yapar ve bunların normal dosyalar olmasını bekler. /etc/exports dosyasında normal bir dosya belirtilemeyeceğinden, swap dosyalarının bulunduğu dışa aktarma noktasında -alldirs seçeneğinin kullanılması gerekecektir.-n #: Kaç tane NFS sunucu iş parçacığı oluşturulacağını belirtir.-p #: NFS servisi için hangi bağlantı noktasının kullanılacağını belirtir (varsayılan olan 2049 yerine).-r: NFS servisini portmap(8) ile kaydeder. Bu seçenek, portmap sunucusu yeniden başlatılırsa NFS servislerini yeniden kaydetmek için kullanılabilir. Bu seçenek, update komutuna eşdeğerdir.-t: TCP NFS istemcilerine hizmet verir. Not: Başka bir seçenek belirtilmemişse yalnızca TCP kullanılacaktır.-u: UDP NFS istemcilerine hizmet verir. Not: Başka bir seçenek belirtilmemişse yalnızca UDP kullanılacaktır.-v: nfsd'nin günlük kaydı seviyesini bir artırır (birden fazla kez kullanılabilir).
Yapılandırma
Aksi belirtilmedikçe, sekiz NFS sunucu iş parçacığı başlatılır ve hem UDP hem de TCP taşıma katmanları (transports) desteklenir.
Bir sunucu, istemcilerinden gelen maksimum eşzamanlılık düzeyini karşılamaya yetecek kadar iş parçacığı çalıştırmalıdır.
Ayarlanabilir parametrelerin bir listesi için nfs.conf(5) belgesine bakın.
Notlar
showmount(8) aracılığıyla görüntülenen dışa aktarma listesi, her bir dışa aktarmanın durumu hakkında ek bilgiler içerebilir. Bu bilgiler, dışa aktarmanın grup listesindeki girdiler olarak raporlanır.
Bir dışa aktarma şu anda kullanılamıyorsa, grup listesi "
Bir dışa aktarma varsayılan olmayan güvenlik mekanizmalarına izin veriyorsa, grup listesinde hangi güvenlik mekanizmalarına izin verildiğini belirten bir girdi yer alacaktır. Örneğin: "krb5:sys". Mekanizmalar belirli bir sıra olmadan listelenir ve tüm istemciler için mevcut olmayabilir.
Bir dışa aktarma tüm istemciler için mevcutsa, grup listesi genellikle boştur. Ancak grup listesinde ek durum bilgisi döndürülürse, dışa aktarmanın tüm istemciler için kullanılabilir olduğunu belirtmek amacıyla listede açık bir "(Everyone)" girdisi de yer alacaktır.
Eğer nfsd bir dışa aktarma noktasına okuma erişimine sahip değilse, bağlama (mount) işlemi "Permission denied" hatasıyla başarısız olur ve checkexports komutu şu hatayı bildirir:
sandbox_check failed. nfsd has no read access to
Dosyalar
/etc/exports Dışa aktarılan dosya sistemlerinin listesi. /var/run/nfsd.pid Şu anda çalışan nfsd'nin pid değeri. /var/run/mountd.pid Şu anda çalışan mountd'nin pid değeri (dışa aktarmaları güncellemek için mountd'ye HUP sinyali gönderebilecek betiklerle geriye dönük uyumluluk sağlamak amacıyla sunulmuştur). /var/run/mountdtab Hizmet verilen bekleyen bağlamaların güncel listesi. /var/run/mountdexptab Dışa aktarılan dosya sistemleri ve dizinler hakkındaki bilgiler (UUID'ler, tutamaçlar, ...). /System/Library/LaunchDaemons/com.apple.nfsd.plist launchd(8) için nfsd servisinin özellik listesi (property list) dosyası.
Ayrıca Bkz.
exports(5), nfs.conf(5), showmount(8), nfsstat(1), nfssvc(2), portmap(8), rpc.rquotad(8), launchd(8)
Tarihçe
nfsd ve mountd araçları ilk olarak 4.4BSD sürümünde ortaya çıktı. mountd işlevselliği, Darwin 9 sürümünde nfsd ile birleştirildi.
macOS 26.4 10 Kasım 2008 macOS 26.4