Belirtimdeki ikinci öğe, kullanıcıya arama sürecini daha iyi denetleme imkanı verir. Eylem öğeleri iki hizmet ismi arasına yerleştirilir ve köşeli parantezlerin arasına yazılır. Genel biçimi şöyledir:
Burada:
durum => success | notfound | unavail | tryagain
eylem => return | continue
olabilir. Sözcüklerin harf büyüklükleri önemsizdir. durum değerleri belirli bir hizmetin bir arama işlevinin çağrısının sonucudur. Bunların anlamları:
- success
Bir hata oluşmadan istenen girdi döndü. Öntanımlı eylem return, dön'dür.
- notfound
Arama süreci tamamlandı ama gerekli değer bulunamadı. Öntanımlı eylem continue, aramaya devam et'tir.
- unavail
Hizmet geçici olarak kullanımdışıdır. Bu ya gerekli dosyanın olmadığı ya da DNS için, hizmetin kullanımdışı olduğunu veya sorguya izin vermediğini belirtir. Öntanımlı eylem
continue, aramaya devam et'tir.
- tryagain
Hizmet geçici olarak kullanımdışıdır. Bu bir dosyanın kilitli olduğu ya da bir sunucunun o an artık bağlantı kabul edemediğini belirtir. Öntanımlı eylem continue, aramaya devam et'tir.
Şöyle bir satırımız varsa:
ethers: nisplus [NOTFOUND=return] db files
bu satır şuna eşdeğerdir (hepsinin bir satıra yazılması zorunluluğu dışında):
ethers: nisplus [SUCCESS=return NOTFOUND=return UNAVAIL=continue
TRYAGAIN=continue]
db [SUCCESS=return NOTFOUND=continue UNAVAIL=continue
TRYAGAIN=continue]
files
Eylemlerin öntanımlı değeri normalde sizin ne istediğinizi gösterir ve sadece olağandışı durumlarda değiştirmek gerekir.
Eğer durum dizgesinden önce bir ! varsa (isteğe bağlıdır), belirtilen eylemin dışındaki tüm eylemlerin geçerli olduğu anlamına gelir. Yani, ! işleci C dilindeki gibi "bundan farklı her şey" anlamına gelir.
Bu eylem öğesini gerekli yapan olağandışılığı açıklamadan önce bir kaç yorum: files hizmetinden sonra bir eylem öğesi eklemenin bir faydası olmadığı açıktır. Eylem daima return olacağından bundan sonra başka bir hizmet belirtilmez.
Şimdi, bu
[NOTFOUND=return] eylemi neden kullanışlıdır? Sebebini anlayabilmek için
nisplus hizmetinin çoğunlukla bir bütünlük arzettiğini bilmemiz gerekir. Yani, bir girdi NIS+ tablolarında mevcut değilse başka hiçbir yerde bulunamaz. Bu durum bu eylem öğesinin neden böyle belirtildiğini açıklar: diğer hizmetler zaten bir sonuç vermeyeceğinden onlara bakmak gereksizdir.
NIS+ hizmetinin makinenin yeniden başlatılması nedeniyle yokluğu farklı bir durum olurdu. Bu durumda arama işlevinin dönüş değeri
notfound değil,
unavail olur. Yukarıdaki satırın açılımda da görebileceğiniz gibi bu durumda
db ve
files hizmetleri kullanılır. Güzel değil mi? Sistem çalışmaya tamamen hazır olmadığı bir anda (sistem açılışı, kapanışı ya da bir ağ sorunu nedeniyle) sistem yöneticisinin özel bir çaba harcaması gerekmeyecektir.