Oturum açmamışken bash betiğini uzak terminalde çalışır halde bırak?


14

Çalıştırmak için birkaç saat süren bir bash betiği var. Çalışırken, oturumu kapatmayı veya internet bağlantısını kesmeyi de içeren başka şeyler yapmak istiyorum (komut dosyam çeşitli bilgisayarlarda ağ testleri çalıştırıyor).

Testlerimi çalışırken uzak bir terminalden ve terminalden çıkış yapmama izin verecek bir komut olduğunu anlıyorum. Bu komutun ne olduğunu bilen var mı?

Yanıtlar:


17

Aradığınız komut nohup.

Ayrıca, bir screenşeyi çalışır halde bırakmak istediğinizde geri dönüp daha sonra etkileşimli olarak yeniden takmak istediğinizde de vardır.

nohupbir komut, başlatmadan sonra kullanıcı girişi beklemiyorsa daha basittir screenve programı etkileşimli olarak çalıştırabilmek istiyorsanız daha iyidir.


Şu anda nohup'a baktım ve görünüşe göre komutun kapanmasına neden olabilecek giriş ve çıkış sorunları var. Ekran hakkında da daha önce okuduğum şeylere dikkat çeken bir şey gördüm. Bunlardan herhangi birini nasıl kullanacağınızı biliyor musunuz?
Ritwik Bose

1
nohup, bir komut dosyası kullanıcı girişi beklemediğinde kullanılır - tüm çıktıları bir dosyaya kaydeder. Ekran, bir şeyi çalışır durumda bırakmak, ancak geri dönüp daha sonra etkileşimli olarak yeniden takmak istediğiniz zaman içindir. Bir komut, başlatma işleminden sonra bir kullanıcı girişi beklemiyorsa daha basittir ve programı etkileşimli bir şekilde çalıştırmak için ekran daha iyi olur.
Justin Smith

Ah buldu. Ekran için, ayırmak için ctrl-A d ve yeniden takmak için -r + pid.
Ritwik Bose

İyi cevap. Daha fazla öne çıkması için cevabınıza ekran yorumu eklemelisiniz.
DaveParillo

1

Bunun için kullanıyorum nohup. Benim durumumda , daha sonra terminali kapatacağım action.py ile uzak bir sunucuda komut dosyasını çalıştırdım adlı bir python komut dosyası vardı nohup python action.py &. Daha sonra çalışması bittiğinde nohup.out, aynı dizinde oluşturulacak işlemden tüm çıktıları görebilirsiniz action.py. Dosya zaten varsa, dosyaya başka çıktılar eklenir.

Tek engel, betiğin ne zaman rotasını çalıştırdığını bilmiyor, bu yüzden benim durumumda tamamlandıktan sonra bana bir e-posta çekmiştim. Umarım bu birine yardımcı olmuştur!


0

nohupKomutunuzu Komutunuzun başına eklemeyi unutursanız ne olur ?

Aşağıdaki Uzun Komutu çalıştırdığınızı varsayalım:

Uzun Komut Çıktısının Başlangıcı

Buna, ls -Ral /Kök Klasörden Özyinelemeli olarak başlayarak, tüm Dosyaların ve Gizli olanlar da dahil olmak üzere tüm Klasörlerin Uzun Biçimle listelendiği varsayılır. Biraz zaman alabilir.

Sadece ctrl+ tuşuna basın Z.

Uzun Komutun Durdurulması

Nasıl geri alırsın?

Onu ön plana geri alma komutu fg.

Komutu Geri Getirmek

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.