Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Linux'ta İş İzleme (Job Control): fg, bg, jobs Komutları ile Arka Plan Süreç Yönetimi

stackor

Üye
Katılım
14 Mart 2026
Mesajlar
33
Merhaba arkadaşlar, bugün sizlere Linux terminalinde çalışırken hayat kurtaran, özellikle uzun süren işlemlerde pencereler arası geçiş yapmamızı sağlayan "Job Control" yani iş izleme konusunu anlatacağım. Örneğin bir derleme işlemi (make) başlattınız ve terminaliniz kilitlendi, ya da bir dosya transferi yaparken başka bir komut çalıştırmak istiyorsunuz. İşte tam burada fg, bg ve jobs komutları devreye giriyor. Benim sunucularda genelde kullandığım bu yöntem, bir terminal oturumundan maksimum verimi almamı sağlıyor.

Bu rehberde, bir işlemi nasıl duraklatıp arka plana atacağınızı, arka plandaki işi nasıl ön plana getireceğinizi ve tüm işleri nasıl listeleyeceğinizi adım adım göstereceğim. Özellikle SSH ile bağlıyken ve tek bir oturumunuz varken bu komutlar çok değerli oluyor.

🔍 Temel Kavram: Ön Plan (Foreground) ve Arka Plan (Background)

Linux'ta bir terminalde çalıştırdığınız her komut varsayılan olarak "ön planda" çalışır. Yani komut bitene veya siz durdurana kadar o terminal size yanıt vermez. "Arka plan" ise, komutu başlattıktan sonra terminalin kontrolünü size geri veren, komutun sessizce çalışmaya devam ettiği moddur. Job Control, bu iki durum arasında geçiş yapmanızı sağlar.

⚙️ Adım 1: İşleri Listelemek - jobs Komutu

Her şey jobs komutu ile başlar. Bu komut, mevcut oturumunuzda (shell session) başlattığınız ve kontrol edebileceğiniz tüm işleri listeler.

Terminalinize şu komutu yazın:
Bash:
jobs

Eğer henüz bir iş başlatmadıysanız boş bir çıktı alırsınız. Bir iş başlattıktan sonra çalıştırırsanız, şuna benzer bir çıktı görürsünüz:
Bash:
[1]-  Running                 sudo apt update &
[2]+  Stopped                 nano /etc/nginx/nginx.conf

Burada köşeli parantez içindeki sayılar iş numaralarıdır (job ID). Artı (+) işareti, en son arka plana atılan veya üzerinde işlem yapılan "mevcut işi" gösterir. Eksi (-) işareti ise bir önceki işi gösterir. "Running" çalışıyor, "Stopped" ise duraklatılmış demektir.

⏸️ Adım 2: Bir İşi Duraklatmak ve Arka Plan Süreci Başlatmak

Diyelim ki ön planda çalışan bir komutunuz var (örneğin, bir metin editörü veya uzun süren bir işlem). Bu işlemi duraklatmak için klavyenizdeki Ctrl + Z tuş kombinasyonunu kullanırsınız.

Bu işlem, komutu durdurur (SIGTSTP sinyali gönderir) ve size terminal kontrolünü geri verir. İş artık "Stopped" durumundadır. Şimdi bu duraklatılmış işi arka planda çalıştırmak için bg komutunu kullanacağız.

Duraklatılmış işi arka plana almak için:
Bash:
bg %1

Burada %1, jobs listesinde gördüğünüz iş numarasıdır. Eğer sadece bg yazarsanız, son duraklatılan işi (artı [+] işaretli olanı) arka plana alır.

Bir komutu doğrudan arka planda başlatmak isterseniz, komutun sonuna & (ampersand) işareti ekleyebilirsiniz. Bu, işlemi hiç ön planda çalıştırmadan doğrudan arka plana atar.
Bash:
tar -czf backup.tar.gz /home/backup_folder/ &

⚠️ Dikkat Edilmesi Gerekenler

Arka plana attığınız bir iş, eğer terminalden girdi bekliyorsa (stdin) sorun yaşayabilir. Örneğin, sudo şifresi soran veya onay bekleyen bir komutu arka plana atarsanız, işlem askıda kalacaktır. Bu tür etkileşimli komutlarda dikkatli olun.

Ayrıca, SSH oturumunuzu kapattığınızda, arka planda çalışan işlerin çoğu sonlanır (SIGHUP sinyali alır). Bunu önlemek için nohup komutunu veya screen/tmux gibi araçları kullanmanız gerekir. Bu konuya başka bir rehberde değineceğim.

▶️ Adım 3: Arka Plan İşini Ön Plana Getirmek - fg Komutu

Arka planda çalışan veya duraklatılmış bir işi tekrar ön plana getirmek ve kontrol etmek için fg komutunu kullanırız.

Örneğin, iş numarası 2 olan bir işi ön plana alalım:
Bash:
fg %2

Sadece fg yazmak, en son arka plana atılan işi (artı [+] işaretli olanı) ön plana getirir. İş ön plana geldiğinde, eğer duraklatılmışsa (Stopped) çalışmaya devam etmez, sizin onu devam ettirmenizi bekler. Devam ettirmek için komut satırında Enter tuşuna basmanız yeterli olabilir veya işleme bağlı olarak bir tuşa basmanız gerekebilir.

💎 Pratik Örnek ve İpuçları

Hadi tipik bir senaryoyu birlikte yapalım:
1. Uzun süren bir komut başlatalım:
Bash:
find / -name ".log" 2>/dev/null | head -20
2. Komut çıktı vermeden önce Ctrl+Z'ye basıp duraklatalım.
3. jobs yazıp iş numarasını görelim (muhtemelen [1]).
4. bg %1 yazarak bu arama işlemini arka plana alalım.
5. Terminal bize geri döndü, başka işler yapabiliriz.
6. Arka plandaki işin durumunu kontrol etmek için tekrar jobs yazabiliriz.
7. İşlem bittiğinde veya çıktısını görmek istediğimizde fg %1 diyerek ön plana alırız.

Bonus ipucu: Bir işi tamamen sonlandırmak için ön plana aldıktan sonra Ctrl+C yapabilirsiniz. Ya da doğrudan iş numarası ile kill komutunu kullanabilirsiniz:
Bash:
kill %1

Umarım bu rehber, terminaldeki verimliliğinizi artırmanıza yardımcı olur. Ben uzun komut satırı işlemlerinde, özellikle sunucu bakım betiklerini çalıştırırken sürekli bu komutları kullanıyorum. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? screen veya tmux mu tercih ediyorsunuz yoksa temel job control yetiyor mu? Deneyimlerinizi ve sorularınızı aşağıya yazmaktan çekinmeyin. Herkese sorunsuz çalışmalar!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri