PuTTY veya OTHER - PuTTY [duplicate] uygulamasından çıktıktan sonra bile komutu yürütmeye devam et


13

Çalıştırmam gereken birkaç komut var. Arayüzümden çıktıktan sonra bile bu komutların sürekli çalışması gerekiyor. Linux GUI'ye erişimim olduğunda, şöyle bir şey yürütürüm:

cd /home/testuser/Scripts*
xterm -hold -T "Background_Script1" -e  "service1-start.sh" &
sleep 10
xterm -hold -T "Background_Script2" -e "service2-start.sh" &

Herhangi bir yardım çok takdir edilecektir.



Bu hizmetleri cin gibi çalıştırmamanın bir nedeni var mı?
SevenSidedDie

Komutlar, "sonsuza kadar"% 100'e yakın çalışma süresinde çalıştırılması gereken hizmetler mi yoksa bir süre sonra bitmesi beklenen uzun süren bir işlem görevi mi? Tüm cevaplar her iki durumda da "işe yarar", ancak uygun öneri farklı olacaktır.
Peteris

Hangi Linux dağıtımını kullanıyorsunuz? Ben çalışan bulundu set -m;yapar o kadar benim komut çalıştırmaya devam ben CentOS ve RHEL üzerine oturumu kapattıktan sonra.
ArtOfWarfare

Yanıtlar:


33

Deneyin

nohup Background_ScriptX ve

nohup, bir terminal kapatıldığında bir işlemin sonlandırılmamasını sağlar. & Sembolü işlemi arka plana iter.

Umarım bu yardımcı oldu.


nohup kesinlikle iş yapıyor
Pitto

Yardım etmekten memnunum.
Eamonn Travers

15
ekranın nohup'a göre belirgin bir avantajı vardır : nohup çalışan bir komuta geri dönmenize izin vermez (örn. ertesi sabah stdout'unu okumak, sonra öldürmeyi seçmek vb.). ekranı tam olarak bunu yapmanızı sağlar.
Andreas F

1
nohup çıktıyı işlenebileceği bir dosyaya gönderir.
Brian Knoblauch

Yeni olanlar için nohup, temelde "takılma yok" - nohup ile takılma ( HUP) sinyali yok sayılır.
Dan7119

20

Çıktıyı daha sonraki bir tarihte okumak istiyorsanız, aşağıdakileri kullanabilirsiniz screen:

screen -d -m my_command

Bu screen -r, stdout / stderr çıkışını okumak için daha sonra ( ) bağlanabileceğiniz ayrılmış bir terminal sağlar .


2
+1. Birincisi, terminalinizi kapatırsanız (örn. Macun) ve daha sonra tekrar açar ve ekrana ( screen -r) yeniden bağlarsanız , programınızın ürettiği tüm çıktıya sahip olursunuz ve aksi takdirde "kaçırırsınız". Ayrıca, ekran bölünmüş ekranlar vb.Gibi çok şaşırtıcı şeyler yapabilir! :)
Alberto Santini

6

nohupKomut yoksa başka bir seçenek de disown komutunu kullanmaktır .

İlk jobsönce terminalde çalışarak arka plan görevlerinizi görüntüleyebilirsiniz . İş numarasını oradan alabilirsiniz.

Şimdi sadece çalıştırın disown %[job number]ve işlem mevcut terminalden ayrılacak ve oturumu kapattığınızda hayatta kalacaktır.

Yan not: Doğru soruyu sorduğunuzdan emin olun. Örneğinizde ipucu verirken gerçek hizmetleri çalıştırıyorsanız, seçtiğiniz işletim sisteminde nasıl bir daemon oluşturacağınıza bakmak isteyebilirsiniz. Bu, işlemin bir yeniden başlatmanın ardından hala çalıştığından emin olmak ve diğer hizmetlerle daha tutarlı olmasını sağlamak içindir.

Bu yardımcı olur umarım.


3

Yana screensöz edilmiştir: orada diğer terminal çoklayıcılar vardır. Çok seviyorum tmux, karşılaştırma için bu diğer süper kullanıcı sorusu, tmux vs ekrana bakın.


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.