Ana içeriğe geç

Linux nohup Komutu: Arka Planda Kesintisiz İşlem Rehberi

Linux’ta bir işlem başlatıp terminali kapattığınızda sürecin durması yaygın bir sorundur.
nohup, bu problemi çözerek işlemleri oturumdan bağımsız çalıştırır.

Bu rehberde, uzun süren görevlerinizi kesintisiz nasıl yöneteceğinizi öğreneceksiniz.


Bu Rehberde Ne Öğreneceksiniz?

  • nohup komutunun çalışma mantığını
  • Çıktıları otomatik olarak dosyalara yönlendirmeyi
  • İşlemleri terminale bağlı kalmadan arka planda çalıştırmayı
  • Çalışan süreçleri izlemeyi ve güvenle sonlandırmayı

Teknik Özet

Bu rehber, Linux’ta süreçleri SIGHUP sinyalinden koruyan nohup komutunu ele alır.
Amaç, terminal kapansa bile uzun süreli görevlerin devam etmesini sağlamaktır.

Kapsanan başlıklar:

  • Temel nohup kullanımı
  • Çıktı yönlendirme
  • Arka plan süreç yönetimi
  • Alternatif araç karşılaştırması

nohup Komutu Nedir?

nohup, “no hang up” anlamına gelir.
Terminal kapandığında gönderilen SIGHUP sinyalini yok sayar.

Bu sayede süreçler arka planda çalışmaya devam eder.


Temel nohup Sözdizimi

nohup komut argumanlar
  • Bu yapı, komutu oturumdan bağımsız başlatır.

Uygulamalı nohup Örnekleri

  1. Basit Bir Betiği Çalıştırma

nohup ./hello.sh
  • Bu komut betiği SIGHUP sinyalinden korur.

  1. Varsayılan Çıktıyı Okuma

cat nohup.out
  • Komut çıktıları varsayılan olarak nohup.out dosyasına yazılır.

  1. Çıktıyı Özel Dosyaya Yönlendirme

nohup ./hello.sh > sonuc.txt
  • Bu kullanım nohup.out oluşmasını engeller.

  1. Hata ve Çıktıyı Birleştirme

nohup ./hello.sh > tum_cikti.log 2>&1
  • Bu komut hata ve çıktıyı tek dosyada toplar.

  1. İşlemleri Arka Planda Çalıştırma

nohup tek başına terminali serbest bırakmaz. Bunun için & kullanılmalıdır.


nohup ping google.com &
  • Bu komut işlemi arka plana alır.

  1. Çalışan Süreci Bulma ve Durdurma

pgrep -a ping
  • Bu komut süreç ID’sini gösterir.

kill PID
  • Bu komut belirtilen süreci sonlandırır.

AraçKullanım AmacıEtkileşimAçıklama
nohupTekil komutları korumakYoknohup, bir komutun oturum kapatıldığında veya terminalden çıkıldığında bile çalışmaya devam etmesini sağlar. Ancak, terminaldeki etkileşim sınırlıdır.
screenOturumdan ayrılıp dönmekOrtascreen, birden fazla sanal terminal oturumu oluşturmanıza olanak tanır. Terminalden çıkıp geri dönmenizi sağlar, ancak kullanıcı etkileşimi mümkündür.
tmuxGelişmiş oturum yönetimiYüksektmux, ekran bölme ve çoklu oturum yönetimi özellikleri sunar. Yüksek etkileşimle, birden fazla terminal oturumunu aynı anda yönetebilirsiniz.

nohup, etkileşimsiz işler için idealdir. tmux, uzun ve interaktif çalışmalar için uygundur.


Önemli Davranışlar ve Sınırlar

  1. SSH koparsa süreç devam eder

  2. exit sonrası işlem çalışmayı sürdürür

  3. Sunucu reboot olursa süreç durur

  4. kill -9 nohup’u durdurur

  5. Yeniden başlatma için systemd servisleri gerekir.


  • Loglama ve Disk Kullanımı Uyarısı nohup.out uzun süreli işlemlerde hızla büyüyebilir. Disk dolmaması için çıktıları özel dosyalara yönlendirin.

  • Gerekirse /dev/null kullanabilirsiniz:


nohup ./hello.sh > /dev/null 2>&1 &

Sıkça Sorulan Sorular (SSS)

1. nohup kullanırken terminali kapatabilir miyim? Evet. & ile arka plana aldıysanız güvenle kapatabilirsiniz.

2. Sistem yeniden başlarsa nohup çalışır mı? Hayır. reboot sonrası işlemler durur.

3. nohup.out çok büyürse ne olur? Disk alanı dolabilir. Logları yönetin veya temizleyin.

4. “Permission denied” hatası alıyorum Betik çalıştırma iznine sahip olmayabilir.


chmod +x betik_adi.sh

Sonuç

nohup, Linux’ta uzun süren işlemler için sade ve güvenilir bir çözümdür. Doğru loglama ile üretim ortamlarında sorunsuz çalışır.

Bu yöntemi Rabisu Bulut altyapısındaki Linux sunucularınızda güvenle kullanabilirsiniz 🚀