Eğer bir Linux geliştiricisiyseniz oturumlarınızın tutarlılığının ve güvenilirliğinin önemini bilirsiniz. Linux'ta uzun süredir devam eden işlemlerin, oturumdan çıkış yaptıktan sonra bile devam etmesi gerekir. Neyse ki Linux'un bu amaç için işlevsel bir komutu var. nohup komutu komutların arka planda kesintisiz çalışmasını sağlar. Bu şekilde veri kaybını önler ve değerli zamandan tasarruf sağlar. Bu kılavuz, söz dizimi ve seçeneklerinden pratik örneklere ve yaygın hataların giderilmesine kadar Linux nohup komutu hakkında bilmeniz gereken her şeyde size yol gösterecektir.
Linux nohup Söz Dizimini Anlamak
Nohup komutunun kullanımı kolay ve basittir. Arka planda komutları veya komut dosyalarını çalıştırmanıza olanak tanır, böylece terminalde oturumunuzu kapattıktan sonra bile bunların yürütülmeye devam ettiğinden emin olursunuz. İşte nasıl kullanılacağı:
nohup [command] [arguments] &
Değiştirmelisin [emretmek] çalıştırmak istediğiniz komut veya komut dosyasıyla. Ve [argüman] komutun gerektirdiği herhangi bir argüman veya seçenektir. & sembolü arka planda çalışacak komutu gönderir. Bir örnek görelim:
nohup myscript.sh &
Bu örnekte, myscript.sh terminali kapatsanız bile çalışmaya devam edecek bir bash betiğidir. Çıktı adlı bir dosyaya yönlendirilecek nohup.out başka bir yol belirtmediğiniz sürece varsayılan olarak.
Nohup Seçeneklerini Keşfetmek
Nohup komutunun kendisi çok fazla seçeneğe sahip olmasa da, çeşitli komutlar ve yeniden yönlendirme teknikleriyle nasıl etkili bir şekilde kullanılacağını anlamak, performansını artırabilir. Öncelikle nohup komutu hakkında nasıl bilgi alabileceğimize bakalım:
nohup –-help nohup --version
Bu iki komut, yardım mesajını ve nohup sürümünü göstererek size bazı yararlı bilgiler verir.
Nohup Komutuyla Bir İşlem Çalıştırmak
Nohup komutuyla bir işlem yürütmek istiyorsanız son bölümde anlattığım yapıyı takip edebilirsiniz:
nohup [command]
Arka planda bir işlemi çalıştırmak istiyorsanız, şunu eklemeniz yeterli: & emrinizin sonuna kadar.
Nohup Komutu ile Arka Planda Birden Fazla İşlem Çalıştırma
Peki, nohup komutunu kullanarak arka planda birden fazla işlemi çalıştırmak isterseniz ne olur?
nohup bash -c '[command A] && [command B]' &
Yer değiştirmek [komut A] Ve [B komutu] arka planda çalıştırmak istediğiniz komutlarla. Öncelikle sistem paketlerinizi güncellemek, ardından gereksiz dosyaları temizlemek istediğinizi ve bunu nohup komutunu kullanarak yapmak istediğinizi düşünün:
nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &
Bu örnekte, hayır hem güncelleme hem de temizleme işlemlerinin arka planda çalışmaya devam etmesine olanak tanır. Böylece terminali açık tutmanıza gerek kalmadan sistem bakım görevleriniz tamamlanır.
Özel Çıkışı Yönlendirme
Bu işlemin çıktısı şuraya yönlendirilecektir: nohup.out varsayılan olarak. Peki ya çıktıyı başka bir yoldan almak istiyorsanız? Bunu nasıl yapabileceğiniz aşağıda açıklanmıştır:
nohup [command] > [/path/to/new/output.txt]
içindeki değerleri değiştirmeyi unutmayın [] İstediğiniz komut ve dosya yolu ile.
Nohup'ı Diğer Komutlarla Birleştirmek
nohup, güçlü komut zincirleri oluşturmak için diğer komutlar ve kanallarla birleştirilebilir. Bunun bir örneğini görelim:
nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &
Burada, bulmak komutu günlük dosyalarını aramak için kullanılır ve grep “HATA” terimini aramak için kullanılır. Birleştirilmiş çıktı şuraya yönlendirilir: error_logs.txt.
Bu bölümde nohup komutunun en yaygın seçeneklerini ve kullanım durumlarını ele aldık. Bu talimatlara hakim olarak Nohup'ı arka planda Linux işlemlerini çalıştırmak için etkili bir şekilde kullanabilirsiniz.
Yaygın Hatalar ve Sorun Giderme
Nohup komutunu kullanmak genel olarak basittir ancak işlem sırasında bazı yaygın hatalarla karşılaşabilirsiniz. Bu hataları anlamak ve bunların nasıl giderileceğini bilmek, zamandan ve hayal kırıklığından tasarruf etmenizi sağlayabilir. Şimdi bu yaygın hataların neler olduğunu ve bunlarda nasıl gezinileceğini görelim:
İzin reddedildi
Bu hata, çalıştırmaya çalıştığınız komut dosyası veya komutun yürütme iznine sahip olmaması durumunda oluşur. Hatanın çıktısı şöyle görünür: nohup: 'myscript.sh' komutu çalıştırılamadı: İzin reddedildi
Bu sorunu çözmek için komut dosyasının veya komutun doğru izinlere sahip olduğundan emin olmanız gerekir. kullanarak yürütme izni ekleyebilirsiniz. mod emretmek:
chmod +x myscript.sh nohup ./myscript.sh &
Komut Bulunamadı
Bu hata, komut veya komut dosyası belirtilen konumda bulunmazsa veya PATH'inizde mevcut değilse oluşur. Hatanın çıktısı şöyle görünür: nohup: 'myscript.sh' komutu çalıştırılamadı: Böyle bir dosya veya dizin yok
Bu hatayı çözmek için komut veya betiğin mevcut olduğunu ve doğru dizinde olduğunu doğrulamanız gerekir. Komut dosyasının mutlak yolunu sağlamanız gerekebilir:
nohup /path/to/myscript.sh &
Ayrıca komutun PATH'inizde kurulu ve kullanılabilir olduğundan emin olun.
Çıkış Yok
Bazen terminalde veya çıktı dosyasında çıktı olmadığını fark edebilirsiniz. Komut çıktı üretiyorsa ancak bunu göremiyorsanız, varsayılan dosyadan farklı bir yola yönlendirilmiş olabilir veya dosya izinleriyle ilgili bir sorun olabilir. Bu sorunun üstesinden gelmek için, çıktı dosyasının doğru şekilde yönlendirildiğinden emin olmak amacıyla açıkça belirtmeniz gerekir:
nohup myscript.sh > output.log 2>&1 &
Örnek olarak, bu komut hem standart çıktıyı hem de standart hatayı adlı bir dosyaya yönlendirir. output.log.
Komut Dosyası Arka Planda Çalışmıyor
Bazen komut dosyanız veya komutunuz çalışıyor gibi görünebilir ancak arka planda çalışmaz. Nedeni genellikle basittir. Eklemeyi unutmuş olabilirsiniz & Arka planda çalıştırmak için komutun sonundaki sembol. Çözüm de basit, sadece bunu eklediğinizden emin olun ve hazırsınız.
Asılı veya Yanıt Vermeyen Süreç
Nohup ile başlatılan bir süreç askıda kalabilir veya yanıt vermeyebilir. İşlem girdiyi bekliyorsa veya erişmeye çalıştığı kaynaklarla ilgili sorunlar varsa bu durum meydana gelebilir. Bu sorunun iki çözümü var:
- Gerekli Girişi Kontrol Edin: Komutun herhangi bir etkileşimli giriş gerektirmediğinden emin olun.
- Kaynak Sorunları: Komutun gerekli kaynaklara (ör. dosyalar, ağ) erişimi olduğunu doğrulayın.
Nohup.out'un üzerine yazma
Nohup komutunu kullanarak arka planda birden fazla işlem çalıştırıyorsanız, istemeden işlemin üzerine yazabilirsiniz. nohup.out dosya. Bu sorunu önlemek için her işlem için belirli bir yol seçebilirsiniz. Bu şekilde her işlemin kendine özgü çıktı dosyası olur ve varsayılan yolun üzerine yazılmaz.
Sık karşılaşılan nohup hatası ve çözümlerini öğrenerek nohup komutunu sorunsuz bir şekilde kullanabilirsiniz.
Çözüm
Nohup komutu, işlemleri arka planda çalıştırması gereken herhangi bir Linux kullanıcısı için harika bir araçtır çünkü işlemlerinizin çıkış yaptıktan sonra bile çalışmaya devam etmesini sağlar. Bu kılavuzda temel sözdizimini ele aldık, çeşitli seçenekleri araştırdık ve sorun giderme ipuçlarıyla birlikte yaygın hataları tartıştık. Nohup komutunda ustalaşmak, uzun süren görevleri verimli bir şekilde yönetmenize olanak tanır ve bu da üretkenliğinizi ve sistem yönetimi becerilerinizi artırır.
Linux deneyiminizi en üst düzeye çıkarmak isteyen bir Linux geliştiricisiyseniz, güvenilir bir sürüme geçmeyi düşünün. Linux VPS'si. Bulut tabanlı VPS hizmetimiz 7/24 destek ve %99,95 kesintisiz çalışma garantisi sunar; bu da uygulamalarınızın her zaman sorunsuz çalıştığı ve günün her saatinde yardım alabileceğiniz anlamına gelir. Sağlam altyapı ve güvenilir kaynaklarla VPS'miz Linux programcılarının taleplerini karşılamak üzere tasarlanmıştır. Ayrıca tercih ettiğiniz Linux dağıtımını önceden yükleyerek kurulumu hızlı ve kolay hale getirebilirsiniz. İhtiyacınız olan gücü ve esnekliği sağlayan bir VPS ile Linux projelerinizi bir sonraki seviyeye taşıyın.
SSS
arasındaki fark nedir? hayır Ve &?
hayır Kullanıcı oturumu kapattığında işlemin sonlandırılmasını önlerken, & arka planda bir işlemi çalıştırır. Kullanma hayır Oturum kapatıldıktan sonra sürecin devam etmesini sağlar ve bunu aşağıdakilerle birleştirir: & arka planda çalışmasına olanak sağlar.
Nohup neden kullanılıyor?
hayır Kullanıcı oturumu kapattıktan veya terminal kapatıldıktan sonra bile bir komut veya komut dosyasının ç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 gereklidir.
Nohup out dosyası nedir?
The nohup.out file, nohup'un bir komutun standart çıktısını ve standart hatasını yeniden yönlendirdiği varsayılan çıktı dosyasıdır. Başka bir çıktı dosyası belirtilmemişse, komutun çıktısı şuraya kaydedilir: nohup.out geçerli dizinde.