Google Cloud’da SSH kapalı olduğunda bir Java uygulamasını çalışır durumda tutma


9

Şu anda, Google Cloud Compute'taki bir VM'ye SSH-in yaparak bir Java uygulamasını çalıştırıyorum. Uygulamayı çalıştırmak için bir komut veririm ve bir konsol yükler. SSH bağlantısını sonlandırdığımda uygulama kapanıyor. Sanırım bunun nedeni konsolun kapalı olması.

SSH'yi sonlandırdıktan sonra bu uygulamanın (bir sunucu) devam etmesini ve herhangi bir noktada konsola yeniden bağlanmayı ve sunucuda komut vermeyi istiyorum.


Yanıtlar:


10

Bunu siz belirtin:

SSH'yi sonlandırdıktan sonra bu uygulamanın (bir sunucu) devam etmesini ve herhangi bir noktada konsola yeniden bağlanmayı ve sunucuda komut vermeyi istiyorum.

Hedeflerde biraz belirsiz, ama ona bir göz atacağım!

Herhangi bir komutu bir Linux sunucusunda arka plan işlemi olarak çalıştırmak için, komutu hazırlamanız nohupve sonuna eklemeniz &gerekir.

Yani son komut şöyle olurdu:

nohup [your command] &

nohupKomut görmezden gelip işareti “ups asmak” gerektiği anlamına gelir &kendisine eklenmiş arka plan işlemi olarak komutunu çalıştırması talimatını verir bir kabuk komutu. Kullanımı hakkında daha fazla bilgiyi burada bulabilirsiniz .

Böyle bir komut çalıştırdığınızda, işlem devam eder, komut istemine geri gönderilirsiniz ve terminal oturumundan çıkabilirsiniz veya hatta bu terminal oturumu sırasında bu komutla ilgisi olmayan bir şey daha yapabilirsiniz.


1
İşleme geri dönmek ve java konsoluna bir komut girmek istersem, bunu nasıl yaparım?
Noahb32,

1
@ Noahb32 Peki, bu bir arka plan işlemi olarak başlatacaktı; Bu yöntemi çoğunlukla sadece bir süreci başlatmak ve sonra unutmak için kullanıyorum. Yeni bir Java konsolu başlatmak istiyorsanız, kabuğa geri döndüğünüzden beri bunu yapabilirsiniz. Fakat belki screenfırlatma işleminden sonra oturuma geri dönebilmenizi sağladığından bunun yerine araştırmalısınız . Dürüst olmak gerekirse, sorunuz büyük bir belirsizliktir, bu yüzden eğer açıklığa kavuşturursanız, bu durumun açıklığa kavuşmasına yardımcı olabilir.
JakeGould

1
Teşekkür ederim! Çıkışı başka bir terminalden izleyebileceğinizi eklemek isterim: sadece tail -f nohup.outaynı işte çalışın. dir.
naXa 19:18

3

Bunu yapmanın en az üç yolu vardır: nohup('kapatma'), screen/ tmux, veya disown. Sunucuya bağlanma ve bağlantıyı kestikten sonra arka plan programı ile etkileşime girme gereksiniminizle ilgili olarak sorunuz biraz belirsiz.

Bu durumda nohupve disownsüreci serbest bıraktıkça iyi bir eşleşme olmazsa (çalışmaya devam eder). tmux(ve ayrıca screen) bir terim siz çalışırken bile çalışsın.

Daha fazla bilgi için ilgili sayfaları görebilirsiniz:

man nohup
man tux

Bash saygısızlığı (bir çok başka kabuğun benzer bir şey içermesine rağmen Bash'i çalıştırdığınızı varsayarsak)


1

Bir uygulamayı çalışan kabuğundan ayırmak, kabuk çıktıktan sonra da devam ettirmek için nohupkomutu kullanın.

Siz sadece normal komutunuzu önek olarak verin nohupve çalışması gerekir.

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.