Android

Linux nohup komutu

Using nohup to allows jobs to continue on logout

Using nohup to allows jobs to continue on logout

İçindekiler:

Anonim

nohup komutu, bağımsız değişkeni olarak belirtilen başka bir programı yürütür ve tüm SIGHUP (kapatma) sinyallerini yoksayar. SIGHUP , kontrol terminali kapalı olduğunda bir işleme gönderilen bir sinyaldir.

Genellikle, SSH üzerinden bir program çalıştırdığınızda, bağlantınız koparsa veya oturumu kapatırsanız, oturum sonlandırılır ve terminalden yürütülen tüm işlemler durur. nohup komutu burada nohup . Tüm kapatma sinyallerini yoksayar ve işlem çalışmaya devam eder.

Nohup Komutu Nasıl Kullanılır

nohup komutunun sözdizimi aşağıdaki gibidir:

nohup COMMAND

Komut, standart --help ve --version dışında başka seçenekleri kabul etmez.

Aşağıdaki örneğe bakalım:

nohup mycommand

nohup: ignoring input and appending output to 'nohup.out'

nohup mycommand komutunu ön planda çalıştırır ve komut çıkışını nohup.out dosyasına yönlendirir. Bu dosya geçerli çalışma dizininde oluşturulur. Komutu çalıştıran kullanıcının çalışma dizinine yazma izni yoksa, dosya kullanıcının ana dizininde oluşturulur.

Oturumu kapatır veya kapatırsanız, işlem sonlandırılmaz.

Komutu Arka Planda Çalıştırma

Komutu tamamlayana kadar kabukla etkileşime nohup için ön planda nohup kullanmak çok kullanışlı değildir.

Komutu arka planda çalıştırmak için komutun sonuna & sembolünü ekleyin:

nohup mycommand &

Çıktı, kabuk iş kimliğini (parantez içine alınmış) ve işlem kimliğini içerir:

25177

fg komutunu kullanarak komutu ön plana getirmek için iş kimliğini kullanabilirsiniz.

Herhangi bir nedenle işlemi sonlandırmak isterseniz, kill komutunu ve ardından işlem kimliğini kullanın:

kill -9 25132

Çıktıyı Dosyaya Yeniden Yönlendirme

Varsayılan olarak, nohup komut çıkışını nohup.out dosyasına yönlendirir. Çıktıyı farklı bir dosyaya yeniden yönlendirmek istiyorsanız, standart kabuk yeniden yönlendirmesini kullanın.

Örneğin, standart çıktıyı ve standart hatayı mycommand.out yönlendirmek için şunları kullanırsınız:

nohup mycommand > mycommand.out 2>&1 &

Standart çıktıyı ve standart hatayı farklı dosyalara yeniden yönlendirmek için:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternatifler

Terminali kapattığınızda veya bağlantı kesildiğinde bir komutun sonlandırılmasını önlemek için kullanabileceğiniz birkaç alternatif program vardır.

Ekran

Ekran veya GNU Ekran, bir ekran oturumu başlatmanıza ve o oturum içinde istediğiniz sayıda pencereyi (sanal terminaller) açmanıza izin veren bir terminal çoklayıcı programıdır. Ekranda çalışan işlemler, bağlantınız kesilse bile pencereleri görünmediğinde çalışmaya devam eder.

tmux

Tmux, GNU ekranına modern bir alternatiftir. Tmux ile bir oturum oluşturabilir ve o oturumun içinde birden çok pencere açabilirsiniz. Tmux oturumları kalıcıdır; bu, terminali kapatsanız bile Tmux'da çalışan programların çalışmaya devam edeceği anlamına gelir.

sahip çıkmamak

disown , bir kabuk işini kabuğun iş denetiminden kaldıran bir kabuk yerleşikidir. nohup farklı nohup , çalıştırma işlemlerinde disown özelliğini de kullanabilirsiniz.

Sonuç

nohup , oturumu kapattığınızda veya terminalden çıktığınızda komutların sonlandırılmasını önlemenizi sağlar.

nohup terminali