İş Denetiminin Temelleri
Önceki VII. Oylum - İş Denetimi Sonraki
İş Denetiminin Temelleri
İş denetimi, bir sürecin çalışmasını seçerek durdurma (bekletme) ve daha sonra çalışmasını sürdürme (yeniden başlatma) yeteneği demektir. Bir kullanıcı bu araçla genellikle Bash ve sistemin uçbirim sürücüsü tarafından ortak olarak sağlanan bir etkileşimli arayüz üzerinden çalışır.
Kabuk bir iş ile her boruhattını ilişkilendirir. Halen çalışmakta olan ve jobs komutu ile listelenebilen işlerin listesini bir tabloda saklar. Bash bir işi eşzamansız olarak başlattığında şöyle bir ileti gösterir:
[1] 25647
Bu ileti, işin iş numarasının 1 ve bu işle ilişkilendirilen boruhattındaki son sürecin süreç kimliğinin (PID) 25647 olduğunu ifade eder. Bir tek boruhattındaki süreçlerin tümü aynı işin üyeleridir. Bash iş denetimi için esas olarak iş soyutlaması kullanır.
İş denetiminin kullanıcı arayüzünün gerçeklenmesini kolaylaştırmada, işletim sistemi, kullanılan uçbirim sürecinin grup kimliği diye bir kavram sağlar. Bu süreç grubunun üyeleri (süreçlerin süreç grubu kimliği, kullanılan uçbirimin süreç grubu kimliğine eşittir) klavyeden üretilen SIGINT gibi sinyalleri alır. Bu süreçler önalanda olduklarını söylerler. Artalan süreçleri, süreç grubu kimliği uçbiriminkinden farklı olan süreçlerdir. Bu süreçler klavyeden üretilen sinyallerden bağışıktır. Sadece önalan süreçleri uçbirime yazar ve uçbirimi okuyabilir. Uçbirimi okumaya (ya da yazmaya) çalışan artalan süreçleri bir SIGTTIN (SIGTTOU) sinyali yakalanmadıkça, süreci bekleten uçbirim sürücüsü üzerinden gönderir.
Bash'in çalıştığı işletim sistemi üzerinde iş denetimi destekleniyorsa, Bash onu kullanacak araçları içerir. Bir süreç çalışırken bekletme karakteri nin tuşlanması (genelde ^Z, Control-Z'dir) sürecin durdurulmasına ve denetimin Bash'e geçmesine sebep olur. Gecikmeli bekletme karakterinin (genelde ^Y, Control-Y'dir) tuşlanması, uçbirimden girdi okumaya çalıştığı zaman sürecin durdurulmasına sebep olur ve denetim Bash'e döndürülür. Bundan sonra kullanıcı bu işin durumunu değiştirebilir: bg komutunu kullanarak artalanda, fg komutunu kullanark önalanda işi devam ettirebilir ya da kill komutu ile süreci öldürebilir. Bir ^Z hemen etkisini gösterir ve çıktının askıda kalmasına ve baştanyazmanın iptal edilmesine sebep olan bir yan etkisi vardır.
Kabuktaki bir işi ifade etmede kullanılan bir kaç yol vardır. % karakteri bir işin ismini ifade eder.
İş numarası n'e, %n olarak başvurulabilir. %+ ve %% sembolleri, artalanda başlatılan ya da önalanda olan durmuş son işin yani o anki iş kavramının kabuktaki karşılığıdır. Tek bir % (iş belirtimine eşlik etmeksizin) ayrıca o anki işi belirtmek için kullanılabilir. Önceki iş ise %- sembolü ile ifade edilir. İşlerle ilgili çıktılarda ise (örn. jobs komutunun çıktısı), o anki iş daima bir + ile önceki iş ise - ile imlenir.
Bir işe onu başlatan ismi bir önek olarak kullanarak ya da komut satırının içinde geçen bir dizge kullanılarak erişilebilir. Örneğin, %ce durmuş olan ce işini ifade eder. %?ce şeklinde bir kullanımda ise komut satırında ce dizgesi geçen bir iş ifade edilebilir. Eğer önek ve dizge birden fazla işle eşleşirse, Bash bir hata uyarısı verir.
Bir işin isimlendirilmesi onu önalana almak için kullanılabilir: %1, fg %1 komutuna eşdeğerdir ve 1 numaralı işi artalandan önalana almak içindir. Benzer olarak, %1 &, bg %1 komutuna eşdeğerdir ve 1 numaralı işin artalanda sürdürülmesini sağlar.
Kabuk herhangi bir yerde bir iş durumunu değiştirdiğinde anında öğrenir. Normalde Bash bir işi, durumundaki değişiklikleri raporlamadan önce bir komut istemi basmaya hazır hale gelene kadar herhangi bir çıktısına kesme uygulamadan bekler. set yerleşiği -b seçeneği ile çalıştırılmışsa, Bash bu değişiklikleri anında raporlar. Her çocuk sürecin çıkışında varsa SIGCHLD sinyal kapanı çalıştırılır.
Durmuş işler varken Bash çıkmaya çalışırsa, kabuk durmuş işlerin varlığını belirten bir uyarı iletisi basar. Bundan sonra onların durumunu öğrenmek için jobs komutu kullanılabilir. Bir ara komut olmaksızın çıkmak için ikinci bir istek daha gelirse, kabuk bir ileti daha göstermez ve durmuş işler sonlandırılır.
Önceki Üst Ana Başlık Sonraki
VII. Oylum - İş Denetimi Başlangıç İş Denetim Yerleşikleri
Bir Linux Kitaplığı Sayfası