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

Linux'ta nohup Komutu Nasıl Çalışır. Syntax, Kullanım Senaryoları ve Örnekler

Ada Lovegood By Ada Lovegood 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çeneklerini keşfetmek

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 ol.
  • 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

nohup ile & arasındaki fark nedir?

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ş

Bloga göz at

Okumaya devam et.

Cosmos paneli etrafında uygulama panellerini gösteren Cosmos Cloud ile Çalıştırabileceğin En İyi Self-Hosted Uygulamalar kapak görseli.
Sunucular ve OS

Cosmos Cloud ile Çalıştırabileceğin En İyi Self-Hosted Uygulamalar: Dosyalar, Medya, Şifreler, Otomasyon ve Daha Fazlası!

Belki Cosmos Cloud'u kurdun ve hangi uygulamaların iyi uyduğunu görmek istiyorsun ya da henüz Cosmos'a karar vermedin ve iş akışına ne kadar uyduğunu görmek istiyorsun.

Nick SilverNick Silver 16 dk okuma
Hibrit kurulum diyagramı ve neon ops ile access bloklarını içeren Docker Uygulamalarını Yönetmek için Portainer vs Cosmos Cloud kapak görseli.
Sunucular ve OS

Portainer vs Cosmos Cloud: Docker Uygulama Yönetimi için Uygun Seçim

Docker'ı zaten biliyorsan ve büyüyen bir uygulama stack'ini daha temiz çalıştırmak istiyorsan, Portainer vs Cosmos Cloud için kısa cevap şu: Portainer doğrudan kontrol için daha güçlü bir seçim.

Nick SilverNick Silver 14 dk okuma
Soyut bir bulut ağ dünyasında üç self-hosted yol gösteren Cosmos Cloud vs CasaOS vs Umbrel öne çıkan görseli.
Sunucular ve OS

Cosmos Cloud vs CasaOS vs Umbrel: Hangi Self-Hosted Platform Sana Uygun?

Kısa cevap şu: CasaOS hala başlamak için en kolay yer, Umbrel en temiz seçilmiş hisse sahip, Cosmos Cloud ise alan üzerinde daha sıkı kontrol istediğinde daha mantıklı.

Nick SilverNick Silver 11 dk okuma

Dağıtmaya hazır mısın? 2,48 $/ay'dan başlayan fiyatlarla.

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