Neden Linux kabuk komutunu '&' ile çalıştırın?
Hemen komut istemini geri almak ve işlemi arka planda çalıştırmak için.
Bunların işlevi nedir?
nohup , arka plan işleminin, kullanıcı oturumu kapattıktan sonra (veya başlangıç kabuğundan çıktıktan sonra) çalışmaya devam etmesini sağlar.
> & standart çıktıyı ve standart hatayı günlük dosyasına yönlendirir.
Her şeyi arka planda çalıştırır ve hemen geri istemenizi sağlar.
Açıklama:
Her Linux işlemi, üç giriş / çıkış kanalı, "stdin" girişi, standart çıkış "stdout" ve standart hata çıkışı "stderr" açar. İkili dosya için kullanılabilirler, ancak geleneksel olarak metinlerdir. Çoğu program stdin'in kapandığını gördüğünde, programdan çıkarlar (programlayıcı tarafından değiştirilebilir).
Ebeveyn kabuğu çıkınca çocuklara stdin kapanır ve (genellikle, genellikle) çocuklar da çıkar. Buna ek olarak, çocuklara bir yazılım sinyali (SIGHUP), kullanıcının "telefonu kapattığını" (eski adıyla modem) belirttiğini ve burada varsayılanın da çıkacağını belirten bir sinyal alır. (Bir programcının programı yazarken bunların hepsini değiştirebileceğini unutmayın).
Yani, hiçbir şey yapmayan şey, çocuğa ayrı bir I / O ortamı vermek, girişleri ve çıkışları ana kabuğa bağlı olmayan bir şeye bağlamak ve çocuğu SIGHUP sinyalinden korumaktır. Kullanıcı bağlantısını kestikten sonra, kullanıcının kabuğuna değil, init (işlem 1) 'e ait olan nohup arka plan işlemini göreceksiniz.
Ancak nohup
, işlem ön planda yürütülürse işi tam olarak yapamaz, bu nedenle &
programı arka planda çalıştırmak için kullanılır, burada oturum açmış bir kullanıcıyla veya kullanıcı olmadan mutlu bir şekilde çalışmaya devam eder.