%50 indirim tüm planlarda, sınırlı süre. Başlangıç fiyatı $2.48/mo
8 dk kaldı
Sunucular ve İşletim Sistemleri

Linux'de nohup Komutu Nasıl Çalışır? Söz Dizimi, Kullanım Alanları ve Örnekler

Ada Sevgigüzel By Ada Sevgigüzel 8 dk okuma Son güncelleme: 14 Temmuz 2024
nohup komutu

Bir Linux geliştiricisiyseniz, oturumlarınızın tutarlı ve güvenilir olmasının ne kadar önemli olduğunu bilirsiniz. Linux'de uzun süre çalışan süreçlerin, oturumunuzu kapattıktan sonra da devam etmesi gerekir. Neyse ki Linux'nin bu amaç için kullanışlı bir komutu vardır. nohup komutu komutları arka planda kesintisiz çalışmaya devam ettirmenizi sağlar. Bu sayede veri kaybını önler ve zaman kazandırır. Bu kılavuz, Linux nohup komutunu sözdiziminden seçeneklere, pratik örneklerden sık karşılaşılan hatalara kadar her yönüyle ele almaktadır.

Linux nohup Sözdizimini Anlamak

nohup komutu kullanımı kolay ve sezgiseldir. Komutları veya betikleri arka planda çalıştırmanıza olanak tanır; böylece terminalden çıkış yapsanız bile çalışmaya devam ettiklerinden emin olursunuz. Kullanımı şu şekildedir:

nohup [command] [arguments] &

Yerine [command] çalıştırmak istediğiniz komut veya betiği yazın. [argument] ise komutun gerektirdiği bağımsız değişkenler veya seçeneklerdir. & sembolü komutu arka planda çalıştırır. Bir örneğe bakalım:

nohup myscript.sh &

Bu örnekte, myscript.sh terminalini kapatsanız bile çalışmaya devam edecek bir bash betiğidir. Çıktı, başka bir yol belirtmediğiniz sürece varsayılan olarak nohup.out adlı bir dosyaya yönlendirilir.

nohup Seçenekleri

nohup komutunun kendisi çok fazla seçenek sunmasa da çeşitli komutlar ve yönlendirme teknikleriyle etkili biçimde kullanmayı öğrenmek performansını artırır. Önce nohup komutu hakkında bilgi almak için şu yöntemlere bakalım:

nohup –-help 
nohup --version

Bu iki komut, nohup'ın yardım mesajını ve sürüm bilgisini göstererek işe yarar bilgiler sunar.

nohup Komutuyla Bir Süreç Çalıştırma

nohup komutuyla bir süreç çalıştırmak için bir önceki bölümde anlattığım yapının aynısını kullanabilirsiniz:

nohup [command]

Bir işlemi arka planda çalıştırmak istiyorsanız, komutunuzun sonuna & ifadesini eklemeniz yeterlidir.

nohup Komutuyla Arka Planda Birden Fazla Süreç Çalıştırma

Peki, nohup komutunu kullanarak birden fazla işlemi arka planda çalıştırmak istiyorsanız ne yapmalısınız?

nohup bash -c '[command A] && [command B]' &

Değiştir [command A] ve [command B] ifadesini, arka planda çalıştırmak istediğiniz komutlarla birlikte kullanın. Örneğin, önce sistem paketlerinizi güncellemek, ardından gereksiz dosyaları temizlemek ve bunu nohup komutuyla yapmak istediğinizi varsayalım:

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

Bu örnekte, nohup ifadesi, güncelleme ve temizleme işlemlerinin her ikisinin de arka planda çalışmaya devam etmesini sağlar. Böylece terminal açık kalmak zorunda olmadan sistem bakım görevleriniz tamamlanır.

Özel Çıktıyı Yönlendirme

Bu işlemin çıktısı varsayılan olarak nohup.out konumuna yönlendirilir. Peki çıktıyı farklı bir konuma almak istiyorsanız bunu şu şekilde yapabilirsiniz:

nohup [command] > [/path/to/new/output.txt]

içindeki değerleri, [] istediğiniz komut ve dosya yoluyla değiştirmeyi unutmayın.

nohup'ı Diğer Komutlarla Birlikte Kullanma

nohup, güçlü komut zincirleri oluşturmak için diğer komutlar ve pipe'larla birlikte kullanılabilir. Bir örneğe bakalım:

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

Burada, the bul komutu log dosyalarını aramak için, grep ise "ERROR" terimini aramak için kullanılır. Birleştirilen çıktı şu konuma yönlendirilir: error_logs.txt.

Bu bölümde nohup komutunun en yaygın seçeneklerini ve kullanım senaryolarını ele aldık. Bu komutlara hakim olarak, nohup'ı arka planda işlem çalıştırmak için etkin biçimde kullanabilirsiniz.

Sık Karşılaşılan Hatalar ve Sorun Giderme

nohup komutunu kullanmak genellikle oldukça basittir; ancak süreç içinde bazı yaygın hatalarla karşılaşabilirsiniz. Bu hataları anlamak ve nasıl giderileceğini bilmek, zaman kaybını ve hayal kırıklığını önler. Şimdi bu yaygın hataların neler olduğuna ve nasıl çözüleceğine bakalım:

İzin Reddedildi

Bu hata, çalıştırmaya çalıştığınız betik veya komutun çalıştırma iznine sahip olmaması durumunda ortaya çıkar. Hata çıktısı şu şekilde görünür: nohup: failed to run command 'myscript.sh': Permission denied

Bu sorunu çözmek için betik veya komutun doğru izinlere sahip olduğundan emin olmanız gerekir. Çalıştırma iznini şu komutla ekleyebilirsiniz: chmod komut:

chmod +x myscript.sh 
nohup ./myscript.sh &

Komut Bulunamadı

Bu hata, komut veya betiğin belirtilen konumda bulunmaması ya da PATH'inizde mevcut olmaması durumunda ortaya çıkar. Hata çıktısı şu şekilde görünür: nohup: failed to run command 'myscript.sh': No such file or directory

Bu hatayı gidermek için komut veya betiğin doğru dizinde var olduğunu doğrulamanız gerekir. Betiğe mutlak yol belirtmeniz gerekebilir:

nohup /path/to/myscript.sh &

Ayrıca komutun kurulu olduğundan ve PATH'inizde erişilebilir durumda olduğundan emin olun.

Çıktı Yok

Zaman zaman terminalde veya çıktı dosyasında hiçbir çıktı göremeyebilirsiniz. Komut çıktı üretiyor ancak siz göremiyorsanız, çıktı varsayılan dosya yerine farklı bir konuma yönlendiriliyor olabilir ya da dosya izinlerinde bir sorun olabilir. Bu durumu aşmak için çıktı dosyasını açıkça belirtip doğru konuma yönlendirildiğinden emin olun:

nohup myscript.sh > output.log 2>&1 &

Örneğin bu komut, hem standart çıktıyı hem de standart hatayı şu adlı bir dosyaya yönlendirir: output.log.

Betik Arka Planda Çalışmıyor

Bazen betiğiniz veya komutunuz çalışıyor görünür, ancak arka planda değildir. Bunun nedeni genellikle basittir: komutu arka planda çalıştırmak için sonuna & sembolünü eklemeyi unutmuş olabilirsiniz. Çözümü de bir o kadar basittir; bunu eklediğinizden emin olun ve her şey yoluna girer.

Askıda Kalan veya Yanıt Vermeyen Süreç

nohup ile başlatılan bir işlem askıya alınabilir veya yanıt vermez hale gelebilir. Bu durum, işlem girdi bekliyorsa ya da erişmeye çalıştığı kaynaklarda sorun varsa ortaya çıkabilir. Bu sorunun iki çözümü vardır:

  • Gerekli Girdiyi Kontrol Edin: Komutun herhangi bir etkileşimli girdi gerektirmediğinden emin olun.
  • Kaynak Sorunları: Komutun gerekli kaynaklara (örneğin dosyalar, ağ) erişebildiğini doğrulayın.

nohup.out Dosyasının Üzerine Yazma

nohup komutuyla arka planda birden fazla işlem çalıştırıyorsanız, farkında olmadan nohup.out dosyasının üzerine yazabilirsiniz. Bu sorunu önlemek için her işlem için ayrı bir çıktı yolu belirleyebilirsiniz. Böylece her işlemin kendine özgü bir çıktı dosyası olur ve varsayılan yolun üzerine yazılmaz.

Yaygın nohup hatalarını ve çözümlerini öğrenerek nohup komutunu sorunsuz biçimde kullanabilirsiniz.

Sonuç

nohup komutu, işlemleri arka planda çalıştırması gereken her Linux kullanıcısı için işe yarar bir araçtır; oturumu kapattıktan sonra bile işlemlerinizin çalışmaya devam etmesini sağlar. Bu kılavuzda temel sözdizimini ele aldık, çeşitli seçenekleri inceledik ve sık karşılaşılan hataları çözüm önerileriyle birlikte açıkladık. nohup komutuna hakim olmak, uzun süren görevleri verimli şekilde yönetmenizi, üretkenliğinizi ve sistem yönetimi becerilerinizi geliştirmenizi sağlar.

Linux deneyiminizi en üst düzeye çıkarmak isteyen bir Linux geliştiricisiyseniz, güvenilir bir Linux VPS'e geçmeyi düşünebilirsiniz. Bulut tabanlı VPS hizmetimiz 7/24 destek ve %99,95 çalışma süresi garantisi sunar; bu da uygulamalarınızın her zaman sorunsuz çalıştığı ve günün her saatinde yardım alabildiğiniz anlamına gelir. Güçlü altyapısı ve güvenilir kaynaklarıyla VPS'miz, Linux geliştiricilerinin ihtiyaçlarını karşılayacak şekilde tasarlanmıştır. Üstelik tercih ettiğiniz Linux dağıtımı önceden yüklenmiş olarak gelir; kurulumu hızlı ve kolay hale getirir. Linux projelerinizi, ihtiyacınız olan gücü ve esnekliği sunan bir VPS ile bir üst seviyeye taşıyın.

SSS

Arasındaki fark nedir: nohup ve &?

nohup kullanıcı oturumu kapattığında bir işlemin sonlandırılmasını engellerken, & bir işlemi arka planda çalıştırır. nohup kullanımı, işlemin oturum kapatıldıktan sonra da çalışmaya devam etmesini sağlar; buna & eklenmesi ise işlemin arka planda çalışmasına olanak tanır.

nohup neden kullanılır?

nohup bir komutun veya betiğin, kullanıcı oturumu kapattıktan ya da terminal kapatıldıktan sonra bile çalışmaya devam etmesini sağlamak için kullanılır. Kullanıcı müdahalesi olmadan aktif kalması gereken uzun süreli işlemler için vazgeçilmezdir.

nohup out dosyası nedir?

Bu nohup.out dosyası, nohup'ın bir komutun standart çıktısını ve standart hatasını yönlendirdiği varsayılan çıktı dosyasıdır. Başka bir çıktı dosyası belirtilmezse komutun çıktısı şuraya kaydedilir: nohup.out geçerli dizinde.

Paylaş

Blogdan daha fazlası

Okumaya devam et.

Cosmos Cloud ile Çalıştırabileceğiniz En İyi Kendi Hostinginizi Yönettiğiniz Uygulamalar - uygulama panelleri ve Cosmos kontrol paneli ile kapak görseli.
Sunucular ve İşletim Sistemleri

Cosmos Cloud ile Çalıştırabileceğiniz En İyi Kendi Sunucusunda Barındırılan Uygulamalar: Dosyalar, Medya, Parolalar, Otomasyon ve Daha Fazlası!

Maybe Cosmos Cloud kurulumunu tamamladın ve hangi uygulamaların bununla iyi çalıştığını görmek istiyorsun ya da henüz Cosmos'a karar vermemiş olabilirsin ve iş akışına ne kadar uyduğunu öğrenmek istiyorsun

Nick GümüşNick Gümüş 16 dakikalık okuma
Portainer ile Cosmos Cloud'nin Docker Uygulamalarını Yönetmek İçin Karşılaştırması: Hibrit kurulum diyagramı ve neon ops ile erişim bloklarını içeren kapak görseli.
Sunucular ve İşletim Sistemleri

Portainer mı Cosmos Cloud mi: Docker Uygulama Yönetimi İçin Hangisi Daha Uygun?

Docker'yi zaten biliyorsanız ve büyüyen bir uygulama yığınını daha düzenli bir şekilde çalıştırmanın yolunu arıyorsanız, Portainer ile Cosmos Cloud karşılaştırmasının kısa yanıtı şu: Doğrudan yönetim için Portainer daha güçlü bir seçenek.

Nick GümüşNick Gümüş 14 dakika okuma
Cosmos Cloud, CasaOS ve Umbrel özellik görseli: Soyut bir bulut ağı dünyasında üç farklı self-hosted yolu bir arada gösteriyor.
Sunucular ve İşletim Sistemleri

Cosmos Cloud mı, CasaOS mi, Yoksa Umbrel mi: Kurulumunuza En Uygun Self-Hosted Platform Hangisi?

Kısa yanıt şu: CasaOS başlamak için hâlâ en kolay seçenek, Umbrel en temiz ve derli toplu deneyimi sunuyor; Cosmos Cloud ise alan adları ve altyapı üzerinde daha sıkı bir kontrol istediğinizde anlam kazanıyor.

Nick GümüşNick Gümüş 11 dakika okuma

Dağıtmaya hazır mısınız? Aylık 2,48 dan başlayan fiyatlarla.

2008'den bu yana bağımsız bulut. AMD EPYC, NVMe, 40 Gbps. 14 gün para iade garantisi.