Linux'ta jobs Komutu: Arka Plan İşlerini Listeleme ve Yönetme
jobs komutu, Bash kabuğuna özgü (built-in) bir komuttur. Mevcut kabuk oturumuyla ilişkili olan tüm arka planda çalışan (background) ve askıya alınmış (suspended) işlemleri listeler. Bu komut, özellikle etkileşimli kabuklarda (interactive shells) iş kontrolünü (job control) yönetmek için temel bir araçtır.
jobs Komutunun Söz Dizimi
jobs komutunun genel söz dizimi oldukça basittir:
jobs [SEÇENEKLER] [İŞ_BELİRTİMLERİ...]
Herhangi bir argüman olmaksızın çağrıldığında, jobs mevcut kabuktaki tüm aktif işleri listeler.
İşleri Listeleme
Tüm arka plan ve askıya alınmış işleri görmek için argümansız jobs komutunu çalıştırın:
$ jobs
Çıktı, her bir iş için aşağıdaki bilgileri içerir:
- Köşeli parantez içindeki iş numarası (Örn:
[1],[2]). +veya-işareti:+en son başlatılan/askıya alınan mevcut işi (current job),-ise bir önceki işi (previous job) belirtir.- İşin durumu (Örn:
Running,Stopped,Done). - İşi başlatan komut.
İşlem Kimliğini (PID) Görüntüleme
İşlem Kimliğini (PID) çıktıya dahil etmek için -l seçeneği kullanılır. Bu, kill komutu ile belirli bir işleme sinyal göndermek istendiğinde kullanışlıdır:
$ jobs -l
İş Durumları
jobs komutu tarafından bildirilen işler aşağıdaki durumlarda olabilir:
Running: İşlem arka planda aktif olarak yürütülüyor.Stopped: İşlem askıya alınmıştır (genellikleCtrl+Zile durdurulur).Done: İşlem tamamlanmıştır. Bu durum bir kez gösterilir ve ardından listeden temizlenir.Terminated: İşlem bir sinyal ile sonlandırılmıştır.
İş Belirtimleri (Job Specifications)
İş belirtimleri, fg (ön plana al), bg (arka planda devam ettir) veya kill gibi komutları belirli bir işe hedeflemek için kullanılır. Her zaman bir yüzde işareti (%) ile başlarlar:
%1,%2, …: İş numarasını belirtir.%%veya%+: Mevcut işi (en son arka plana atılan veya askıya alınan).%-: Önceki işi.%string: Komutustringile başlayan işi hedefler (Örn:%sleep).
Örnek: İşleri Yönetme
İki arka plan işi başlattıktan sonra:
$ sleep 300 &
[1] 15001
$ ping -c 100 google.com &
[2] 15005
$ jobs
[1]- Running sleep 300 &
[2]+ Running ping -c 100 google.com &
ping işini ön plana almak için:
$ fg %2
Seçenekler (Options)
jobs komutu aşağıdaki seçenekleri kabul eder:
-l: Normal çıktıya ek olarak işlem kimliklerini (PID) listeler.-p: Yalnızca her işin işlem grubu liderinin PID'sini yazdırır (Betikler için kullanışlıdır).-r: Yalnızca çalışan işleri listeler.-s: Yalnızca durdurulmuş (askıya alınmış) işleri listeler.
Önemli Not:jobskomutu, yalnızca iş kontrolünün etkin olduğu etkileşimli kabuklarda anlamlıdır. Standart bir kabuk betiği (script) içinde genellikle hiçbir çıktı vermez. Betiklerde arka plan işlemleri için$!değişkeni vewaitkomutu kullanılmalıdır.
Hızlı Başvuru
| Komut | Açıklama |
|---|---|
jobs |
Tüm arka plan ve durdurulmuş işleri listeler |
jobs -l |
PID'ler ile listeler |
fg %1 |
İş 1'i ön plana alır |
kill %1 |
İş 1'i sonlandırır |
SSS
jobs ile ps arasındaki fark nedir?
jobs yalnızca mevcut kabuk oturumundan başlatılan işlemleri gösterirken, ps sistemdeki tüm işlemleri listeler.
Arka plan işini terminal kapandığında çalıştırmaya devam etmesi nasıl sağlanır?
İşi arka plana almadan önce nohup kullanın veya arka plana aldıktan sonra disown %N komutunu kullanın.



