getty(1)

İSİM
getty - uçbirim kipini, hızını ve hat disiplinini ayarlar

KULLANIM
/etc/getty [-d öntanımlı_dosya] [-a] [-h] [-H kapama_süresi]
           [-t zamanaşımı] [-w dizge] hat [hız [tür [disiplin]]]
/etc/getty -c gettydefs_dosyası

AÇIKLAMA
getty, sistem tarafından kullanıcının bağlanmasını sağlamak için kullanılan üç uygulamadan ikincisidir (init(1), getty(1) ve login(1)). getty, init(1) tarafından çağrılır:

1.  tty hatlarını açar ve kiplerini ayarlar.

2.  Bağlantı ekranını görüntüler ve kullanıcı ismi girilmesini ister.

3.  Kullanıcı için bir bağlantı sürecini başlatır.

getty'nin takip ettiği yol şöyle açıklanabilir: İlk önce kendi komut satırını çözümler, şayet herhangi bir hata yok ise, doğru çalışma zamanı değerlerini bulabilmek için öntanımlı dosyaları (şayet FSSTND seçeneği ile derlenmişse /etc/conf.getty) incelemeye başlar. Normalde bu dosya /etc/conf.getty'dir. Komut satırından verilen değerler bu öntanımlı dosyadaki (-d öntanımlı_dosya seçeneği ile başka bir dosya belirtilebilir) değerlere göre önceliklidir. Daha sonra okuma ve yazma için bir hat açar ve stdio tamponlamasını kapatır. Şayet bir ilklendirme tanımlı ise, onu başlatır.
(Ayrıntılar için HATTIN İLKLENDİRİLMESİ bölümüne bakınız).

İlklendirmeden sonra, hat kapatılır ve tekrar açılır. Bu sefer hat engellenebilen kipte açılır ve böylece aygıt serbest hareket edemez hale gelir. Taşıyıcı sinyalin tespit edilmesi hattın açılmasını sağlar.

Sonra, getty bir önbilgi (genellikle /etc/issue içindeki metin) ve kullanıcı ismi istemini basar. Son olarak, kullanıcının girdiği ismi okur ve login(1)'i kullanıcı ismini argüman olarak kullanarak çağırır. Bu ismi okuma işlemi esnasında, getty kullanılan uçbirimin hızını sisteme uyarlamaya çalışır ve kullanıcının bağlantı yordamında kullanılacak uçbirim parametrelerini (ayrıntılar için termio(7)'e bakınız) ayarlar.

getty tarafından kullanılan tty aygıtı hat argümanından saptanır. Getty bağlanacağı aygıtın ismi olarak /dev/hat dizgesini kullanır. Getty -h seçeneği ile çalıştırılmamış (veya öntanımlı dosyada HANGUP=NO belirtilmemiş) ise hızı sıfırlayarak hattı kapanmaya zorlayacaktır. Hattın askıda kalma süresini -H seçeneğine saniye cinsinden sayı belirterek (veya öntanımlı dosyada HANGUPSECS=kapamasüresi belirterek) ayarlayabilirsiniz. -r seçeneği ile gecikme vererek (veya öntanımlı dosyada WAITCHAR=YES ve DELAY=gecikme belirterek) getty'nin hattan tek bir karakter girilmesini beklemesi sağlanabilir ve bu karakter girildikten sonra işleme devam etmeden önce belirtilen saniye kadar daha bekler. Gecikme istenmiyorsa, -r0 kullanın. -w seçeneği ile dizge (veya öntanımlı dosyada WAITFOR=dizge) belirterek getty'nin bu dizgeyi hattan beklemesi sağlanabilir. -t seçeneğine zamanaşımı (veya öntanımlı dosyada TIMEOUT=zamanaşımı) belirtilerek, kullanıcı ismi için istem gösterildikten sonra belirtilmiş zaman içinde bir kullanıcı ismi girilmez veya bu süre içinde doğru kullanıcı ismi girilmez ise getty'nin çıkması sağlanabilir.

Hız argümanı /etc/gettydefs (ayrıntılar için gettydefs(4)kılavuzuna bakınız) dosyası içindeki girdiye bir etikettir. Bu girdi getty'nin tty ayarlarında başlangıç hızını, kullanıcının ismini girerken bağlantı hızı ile hızın yanlış olması durumunda kullanıcının müdahale etmesini sağlayacak başka bir girdiye gösterici olacak hızı tanımlar. Bu işlem <break> karakteri (aslında bir karakter dizisidir) göndererek yapılır. Belirli şartlar altında, bir CR (Satırbaşı karakteri) de aynı işi yapacaktır. Bu genellikle getty'nin modem veya uçbirim hızından daha yükseğe ayarlandığı durumlara oluşur. getty, gettydefs dosyasını sıra ile tarar ve verilen girdiye uygun bir eşleşme arar. Şayet hız belirtilmemişse veya bir girdi bulunamazsa, /etc/gettydefs içindeki ilk girdi öntanımlı değer olarak kabul edilir ve o değer kullanılır. gettydefs dosyasına ulaşılamadığı durumlarda, derleme zamanında tanımlanmış girdi kullanılır.

tür argümanı, hatta bağlı uçbirimi tanımlayan bir dizgedir. tür, termcap(7) içinde listelenen geçerli uçbirim isimlerinden biri olmalıdır. getty, bu değeri ekranı nasıl temizleyeceğine karar vermek için kullanır. Ayrıca TERM ortam değişkenini bu değer ile ayarlar.

disiplin argümanı hat üzerinde kullanılacak hat disiplinini tarif eden bir dizgedir. Öntanımlı değer LDISCO'dur.

Daha önce bahsedildiği gibi, getty bağlantı ekranını görüntüledikten sonra kullanıcı adını okur. Şayet boş karakter alınırsa, kullanıcının <break> tuşuna veya hızın hatalı olduğunu bildirmek için CR tuşuna bastığı kabul edilir. Bunun sonucu olarak getty sıradaki hıza geçer (/etc/gettydefs içinde tanımlı olan hızlar).

Kullanıcı ismi satırsonu karakteri veya satırbaşı karakteri ile sonlandırılır.. Bir satırbaşı karakteri, sistemde yeni satıra geçilmesi sonucunu doğurur (ayrıntılı bilgi için ioctl(2)).

Kullanıcı adı, sadece büyük harflerdenen oluşup oluşmadığını görmek için taranır. Şayet öyle ise, sistem bütün büyük harfleri küçük harfe çevirir.

gettydefs dosyasını sınama seçeneği de vardır. getty, -cgettydefs seçeneği ile çağrılırsa, adı geçen gettydefs dosyası taranır ve görülen değerler standart çıktıya aktarılır. Şayet herhangi bir yazım hatası var ise (gettydefs dosyasındaki sözdizimi hataları) bunlar kullanıcıya bildirilir.

ÖNTANIMLILAR DOSYASI
Başlangıçta, getty /etc/conf.getty.hat dosyasına bakar (veya bu dosyanın bulunamadığı durumlarda /etc/conf.getty dosyasına). Şayet bu dosya var ise satırları aşağıdaki biçimde okur:

İSİM=değer
Bu sayede, getty çalışma zamanı esnasında yeniden derlemeye gerek olmadan belirli özellikleri ayarlama şansına sahip olur. Tanınan İSİM dizgesi ve onların karşılıkları şunlardır:

SYSTEM=isim
    Düğümismi değerini (@S ile gösterilen -- İSTEM İKAMELERİ bölümüne bakınız) isim'e ayarlar. Öntanımlı düğümismi değeri uname(3) çağrısı tarafından döndürülür.

VERSION=dizge
    @V parametresi (ayrıntılar için İSTEM İKAMELERİ bölümüne bakınız) ile gösterilen değeri dizge'ye ayarlar. Şayet dizge '/' karakteri ile başlıyorsa, dosyanın tam yolu belirtilmiş olarak kabul edilir ve @V bu dosyanın içeriğine göre ayarlanır. Öntanımlı değer /proc/version'dur.

LOGIN=isim
    Bağlantı için kullanılacak uygulamanın adını ayarlar. Öntanımlı olarak /bin/login kullanılır. Şayet bu seçenek belirtilmişse, bu isim /bin/login yerine kullanılacak uygulamanın tam yolunu da vermelidir. Şayet bu string '/' karakteri ile başlıyorsa, bu bir dosyanın tam yolu olarak kabul edilir ve /etc/issue yerine adı belirtilen bu dosya kullanılır. Unutmayın ki, /bin/login argüman olarak sadece kullanıcı adını alır.

ISSUE=dizge
    Başlangıç esnasında getty bir önbilgi, genellikle /etc/issue içindeki metni basar. Şayet bu dizge belirtilmişse getty bu dizgeyi gösterir. Şayet bu dizge '/' karakteri ile başlıyorsa, bir dosyanın tam yolu olarak kabul edilir ve /etc/issue yerine adı belirtilen bu dosya kullanılır.

CLEAR=değer
    değer olarak NO belirtilmişse, başlangıç esnasında getty bir önbilgi ve kullanıcı ismi istemini basmadan önce ekranı temizlemez. Öntanımlı olarak ekran temizlenir.

HANGUP=değer
    değer olarak NO belirtilmişse, başlangıç esnasında getty hattı kapatmayacaktır. Komut satırından -h seçeneğini belirtmek ile aynı şeydir.

WAITCHAR=değer
    değer olarak YES belirtilmişse, getty devam etmeden önce tek bir karakter girilmesi için bekleyecektir. Bu, özellikle modemin sürekli meşgul olmasına sebep olan CD'ye sahip modemlerin sonsuz bir şekilde getty'nin modem ile haberleşmesini sağlar.

DELAY=değer
    WAITCHAR ile birlikte kullanılır. getty'nin girilen karakteri kabul ettikten sonra işleme devam etmeden önce saniye cinsinden verilen süre kadar beklemesi sağlanır. Komut satırından -rgecikme şeklinde tanılama yapılırsa hem WAITCHAR hem de DELAY bu tanımlama ile aynı etkiye sahip olur. Şayet WAITCHAR, bir DELAY tanımlaması yapılmadan verilmiş ise sonuç, komut satırında -r0 verilmesi ile aynı olur. Öntanımlı olarak bekleme yapılmaz.

TIMEOUT=değer
    -t zamanaşımı komut satırı argümanı ile aynı etkiye sahiptir. Bağlantı ekranının görüntülenmesinden sonra belirtilen süre içinde bir kullanıcı adı girilmez ise getty'nin çıkması sağlanır. Öntanımlı olarak sonsuz bekleyişe ayarlıdır.

CONNECT=dizge
    Şayet belirtilmişse, dizge bağlantının sağlanması esnasında getty'i yönlendirecek bir umulan/gönderilen dizilimi (tıpkı INIT için olduğu gibi) olmalıdır. dizge yerine DEFAULT yazılabilir ve bu yerleşik dizge olan

    CONNECT\s\A\r\n
    yerine geçer. \A öncelemesi hızı gösterecek rakamların yerini işaret eder. Ayrıntılar için BAĞLANTI ve HIZ kısmına bakınız. Öntanımlı olarak bir bağlantı uzlaşması gerçekleştirilmez.

WAITFOR=dizge
    Bu parametre WAITCHAR'e benzer ama beklenen şey bir karakter değil karakter dizisidir. Bu karakter dizisi girilene kadar getty bekler. Bu parametre CONNECT ile birlikte kullanıldığı zaman en iyi sonucu verir. Örnek:

    WAITFOR=RING
    CONNECT="" ATA\r CONNECT\s\A
    getty, RING dizgesini bekler, ardından hiçbir şey gelmesi beklemez, bir satırbaşı karakteri ile biten ATA gönderir ve CONNECT 2400 gibi bir dizge bekler ve bu durumda kendini 2400 baud'a ayarlar. Öntanımlı olarak herhangi bir dizge girilmesini beklemez.

ALTLOCK=hat
    Uugetty bu parametreyi bağlı olduğu aygıta ilave olarak, diğer bir aygıtı kilitlemek için kullanır. Aynı fiziksel port için iki farklı aygıt ismine sahip sistemler içindir. Örneğin; /dev/tty1A'nın ve /dev/tty1a'nın aynı modemi belirttiği ve başka bir modem olmadığı durumda kullanılır. Ayrıntılar için UUGETTY bölümüne bakınız. Öntanımlı olarak başka bir aygıtın kilitlemesi yapılmaz.

ALTLINE=hat
    Modem ilklendirmesinde kullanılacak başka bir aygıtı tanımlamak için kullanılan parametredir. Şayet WAITFOR seçeneği tanımlanmışsa, bu hatta da uygulanır. İki hat arasında kilitleme alıştırmaları yapan sistemler için gereklidir.

RINGBACK=değer
    Şayet değer YES ise geri arama etkinleştirilir. Gelen aramalar ile uzlaşabilmek için WAITFOR ve CONNECT ile birlikte kullanılmalıdır. Öntanımlı eylem, hattın bir ila üç defa çaldırılıp kapatılması ve ilk aramadan sonra 60 saniye çağrı beklenmesidir. MINRBTIME ve MAXRBTIME ikinci arama için asgari ve azami süreleri tanımlar. INTERRING aynı aramada iki ardışık çalma arasındaki azami süreyi belirtir. MINRINGS ve MAXRINGS ilk arama için asgari ve azami çalma sayısını belirtir.

SCHED=>aralık1 aralık2 aralık3 ...
    getty bu değerleri açılacak oturumların zamanlaması için kullanır. Her bir aralık HG:SA:DAK-HG:SA:DAK şeklindedir. HG haftanın günü demektir. 0 = Pazar, 1 = Pazartesi, ... 6 = Cumartesi. SA saat ve DAK dakika anlamına gelir. Şayet o an ki zaman bu aralıklardan birine denk gelirse, INIT dizisi gönderilir ve getty süre bitimine kadar çalışmasını sürdürür. Aksi taktirde, OFF dizisi gönderilir ve getty zamanı gelene kadar uyur.

OFF=dizge
    Bu satır INIT satırına benzer, tek farkı zamanlama nedeniyle hattın kapatılması için gönderilmesidir.

FIDO=dizge
    Bu satır FidoNet postacısına tam yolu tanımlar. Öntanımlı olarak tanımsız gelir. Bir FidoNet postacısına ayarlandığı zaman, EMSI'yi de açmalısınız (yes yapmalısınız). Dışarıdan bir FidoNet araması alındığı zaman, sanki iki TSYNC veya iki YOOHOO ardışık alınmış gibi, FidoNet postacısına komut satırı seçenekleri olarak tsync veya yoohoo kelimeleri aktarılır. Şayet EMSI yes olarak ayarlanmışsa, bütün EMSI dizgesi (yıldız ile başlar satırbaşı karakteri ile biter) komut satırı seçeneği olarak (satırbaşı karakteri hariç) aktarılır.

EMSI=değer
    Şayet "yes" olarak ayarlanırsa, FidoNet EMSI dizilimleri için girdiyi tarar.

Öntanımlı dosyanın adı, komut satırından -d öntanımlı_dosya şeklinde tanımlama yapılarak değiştirilebilir. Eğer öntanımlı_dosya ismi "/" işareti ile başlıyorsa, dosyanın tam yeri belirtiliyormuş gibi kabul edilir. Aksi taktirde, sadece bir dosya ismiymiş gibi ele alınır ve getty'nin tam dosya ismi olarak /etc/conf.öntanımlı_dosya'yı kullanması sağlanır. Şayet FSSTND uyumluluğu ile derlenmiş ise /etc/conf.öntanımlı_dosya kullanılır.

İSTEM İKAMELERİ
getty önbilgi (genellikle /etc/issue içindeki) ve kullanıcı istemini görüntülediği zaman, çeşitli terbölü öncelemeli karakterlerin kullanılacağını kabul eder. Bu karakterlerden biri bulunduğu zaman, getty tarafından üretilen çıktıda bunların yerine değeri atanır. Tanınan tersbölü öncelemeli karakterler şunlardır:

\\  Tersbölü (\)

\b  Gerisilme (^H)

\c  Bir dizgenin sonunda satırsonu karakterinden önce kullanıldığında o satırsonu karakterinin yoksayılmasını sağlar.

\f  Sayfa ileri (^L)

\n  Satırsonu (^J)

\r  Satırbaşı (^M)

\s  Tek boşluk (' ')

\t  Yatay sekme (^I)

\nnn
    Onluk tabandaki değeri nnn olan ASCII karakter. Eğer nnn 0 ile başlıyorsa sekizlik tabanda, 0x ile başlıyorsa onaltılık tabanda verilmiş kabul edilir.

Bunlara ek olarak, satır sonundaki tek bir tersbölü yeni satırın yok sayılmasına sebebiyet verir ve ilk satırın aşağıdaki satırda devam ettiği kabul edilir.

Ayrıca, @ ile öncelenmiş belirli karakterleri parametre olarak kullanabilirsiniz. Bu parametreler ve bu parametrelere atanan değerler şunlardır:

@B  baud cinsinden geçerli hız (@B göründüğü zaman değerlendirilir)

@D  O an ki tarih, AA/GG/YY biçiminde gösterilir.

@L  getty'nin bağlandığı hat.

@S  Sistemin düğüm ismi.

@T  O an ki saat, SS:DD:SN (24 saat üzerinden) biçiminde gösterilir.

@U  O an bağlı bulunan kullanıcıların sayısı. Bu sayı; /etc/utmp dosyasında ut_name alanı boş olmayan girdilerin toplamı ile olarak elde edilir.

@V  Öntanımlılar dosyasında verilen VERSION değeri.

Tek bir '@' karakteri görüntülemek için '\@' ya da '@@' kullanın.

HATTIN İLKLENDİRİLMESİ
getty'nin en büyük özelliklerinden birisi (en azından yazar açısından) kullanacağı hattı, kullanmadan önce ilklendirme yeteneğidir. Bu çoğunlukla uçbirimlerde değil de modemli hatlarda olmaktaysa da, uçbirimlerin ilkendirilmesi bu kapsamın dışında değildir.

Hattın ilklendirilmesi; hattın açılmasından hemen sonra, WAITCHAR ve/veya WAITFOR seçeneklerine bağlı olarak, yapılır. İlklendirme, öntanımlılar dosyasına

INIT=dizge
girdisi yerleştirilerek gerçekleştirilir. dizge, aşağıdaki şekilde bir ya da daha fazla alandan oluşur:

umulan [ gönderilen [ umulan [ gönderilen ] ] ...]
Bu UUCP L.sys dosyasında kullanılan umulan/gönderilen dizilimine benzer. Tek farkı, 'gönderilen' dizilimine özdevinimli olarak satırbaşı karakteri eklenmemesidir.. Şayet bir satırbaşı karakteri eklenmesini istiyorsanız, bunu '\r' ile açıkça göstermelisiniz.

getty, umulan alanında, UUCP'deki gibi alt alanları destekler:

umulan[-gönderilen-umulan]...
İSTEM İKAMELERİ bölümünde belirtilen bütün tersbölülü önceleme karakterleri umulan ve gönderilen alanları için de geçerlidir. Bunlara ek olarak, aşağıdaki önceleme karakterleri de geçerlidir:

\p  1 saniyelik gecikme ekler.

\d  2 saniyelik gecikme ekler.

\K  0.25 saniyelik Break gönderir.

\Tnnn
    Öntanımlı (30 saniyelik) zamanaşımı değerini nnn saniye olarak değiştirir. nnn değeri, onluk, sekizlik veya onaltılık olarak belirtilebilir; İSTEM İKAMELERİ bölümündeki \nnn kullanımına bakınız.

Bu ilave önceleme karakterleri için, gerçekte karakter gönderilmediğini unutmayın.

BAĞLANTI VE HIZ
getty düzgün kurulmuş bir bağlantı sağlamak için bir uzlaşmaya girişir. Bu özelliğinin en iyi kullanımı modem tarafından gönderilen CONNECT iletisine bakmak ve hat hızını bu iletide belirtilen hıza ayarlamaktır (örneğin 2400).

Bağlantı uzlaşması için gereken betik, aşağıdaki ek dışında INIT betiği ile tamamen aynıdır (HATTIN İLKLENDİRİLMESİ bölümüne bakınız):

\A  baud cinsinden hızın görüneceği yerleri işaretler. Bu işaret, betik içinde işaret edilen yerdeki 0-9 arasındaki rakamların tamamı ile eşleşir ve mümkünse hızı bu değere göre ayarlar.

Hızın özdevinimli ayarlanması 0 değeri ile etkinleştirilir.

CONNECT=CONNECT\s\A
Yukarıdaki satır CONNECT 1200 dizgesi ile eşleşirse, getty'nin bağlantı hızını 1200 baud'a ayarlamasına sebep olur. Bu işlem şu adımları takip eder:

1.  1200 değeriyle eşleşme olması için getty, gettydefs dosyası içinde 1200 etiketli bir girdi arayacaktır. Şayet eşleşen bir girdi bulursa, bu değer kullanılır. Eğer bulamazsa, ikinci adıma geçilir.

2.  O an kullanılan geçerli gettydefs değerleri eşleşen hıza uyum için düzenlenir (örneğin 1200'e). Bununla birlikte, eşleşen hız geçersiz ise, sonraki adıma geçilir.

3.  getty bir hata iletisini günlüğe kaydedip, normal işlemine döner. Böylece gettydefs dosyasındaki disiplin girdileri denenerek yapılan normal işlevlerine dönmesi sağlanır.

UUGETTY
uugetty, getty'ye benzer ama UUCP ailesi (uucp(1), cu(1) ve diğerleri) tarafından kullanılan kilit dosyalarını oluşturmak ve kullanmak için tasarlanmıştır. Bu sayede iki veya daha fazla sürecin aynı tty hattını kullanması önlenir.

uugetty başladığı zaman, kullanmaya niyetlendiği hatta bir kilit dosyası görürse, bu hattaki kilit dosyasının sahibi olan bir süreç olup olmadığını tespit etmek için, kilit dosyasının süreç numarasını kullanır. Şayet bu kilit dosyası bir sürece ait değilse, uugetty bu dosyası siler ve işleme devam eder. Şayet bu dosyanın kontrolünü elinde tutan, geçerli bir süreç varsa, uugetty, o süreç bu kilit dosyasını serbest bırakana kadar uyur ve daha sonra init(1)'in yeni bir uugetty başlatmasını sağlayıp kendini sonlandırır. Çakışan süreç ortadan kalkınca, uugetty kendi kilit dosyasını oluşturarak bağlantı ekranını çalıştırır. Bu sayede diğer süreçlerin aynı hattı kullanması önlenmiş olur.

uugetty normalde sadece üzerinde çalıştığı hattın adını kilitler. Aynı porta işaret eden iki ayrı aygıt isminin bulunduğu sistemlerde (bir tanesi modemi kontrol eden, diğeri etmeyen iki aygıt bulunması durumu gibi) aşağıdaki gibi bir hat öntanımlı dosyaya yerleştirilir:

ALTLOCK=hat
Örneğin; eğer uugetty'nin /dev/tty1a üzerinde ise ve ilaveten /dev/tty1A'nın kilitlenmesini istiyorsanız, öntanımlı dosyaya şu satırı girin: ALTLOCK=tty1A.

Taşıyıcı tespiti için beklerken, uugetty her 30 saniyede bir kilit dosyalarını kontrol eder. Eğer kilit dosyaları bulursa, uugetty çıkar ve init yeni bir getty başlatır. Böylece, modem başka bir süreç tarafından kullanılmadan önce tekrar ilklendirilmiş olur.

İLGİLİ DOSYALAR
/etc/conf.getty[.hat]
    Çalışma zamanı yapılandırmalarını içerir. uugetty, /etc/conf.uugetty[.hat] dosyasını kullanır.

/etc/gettydefs
    getty tarafından kullanılacak hız ve tty ayarlarını içerir.

/etc/issue
    Önbilgilerin bulunduğu dosya.

/bin/login
    Kullanıcı ismi girildikten sonra çağrılan öntanımlı uygulama.

İLGİLİ BELGELER
init(1), login(1), uucp(1), ioctl(2), uname(3), gettydefs(5), utmp(5), termio(7).

YAZAN
Şu an ki şeytani Getty_ps:
Kris Gleason <gleasokr (at) boulder.colorado.edu>

Orjinal getty_ps:
Paul Sutcliffe, Jr. <paul (at) devon.lns.pa.us>
UUCP: ...!rutgers!devon!paul

Autobauding rutinleri Mark Keating <...!utzoo!censor!markk> tarafından önerilen kodlardan alınmıştır.

ÇEVİREN
Yalçın Kolukısa <yalcink01 (at) yahoo.com>, Mart 2004