2011-06-03 37 views
16

Amazon EC2 sunucusu kurdum. Web'den sunucuya büyük miktarlarda veri indirmesi beklenen bir Python betiğim var. Komutu ssh aracılığıyla terminalden çalıştırabilirim, ancak sıklıkla ssh bağlantısını kaybederim. Bağlantıyı kaybettiğimde, komut dosyası durur.EC2 sunucusunda sürekli olarak bir Python betiği nasıl çalıştırılır?

Ben terminalden çalıştırmak için komut dosyası anlatmak ve ben kesmek zaman, script hala sunucuda çalışan bir yöntem var mı?

cevap

26

arayın.

  • Düzenli olarak çalıştırmak için komut dosyanızı cron'a ekleyebilirsiniz.
  • manuel komut dosyasını çalıştırın ve nohup kullanarak + arka plan ayırabilirsiniz.
  • Sen daha sonra kaldığı yerden sadece devam etmek, bu tür GNU Screen gibi bir aracı çalıştırmak ve senin terminali ayırmak ve dışarı giriş yapabilirsiniz. Bunu çok kullanıyorum. Örneğin
    • : makinenize içinde
      1. Günlüğü, çalıştırın: screen.
      2. Komut dosyanızı başlatın ve ya terminalinizi kapatın ya da oturumunuzu uygun şekilde ayırın: Ctrl + A, D, D.
      3. Terminalinizden ayırın.
      4. Daha sonra yeniden bağlanın ve screen -rD'u çalıştırın. Eşyalarını bıraktığın gibi görmelisin. Ayrıca /etc/rc.d/ için komut ekleyebilir
  • kitap üzerinde çağrılacak ve her zaman çalışıyor olması.
+0

Ekrandaki bilgi için teşekkürler. – David

1

bu sadece bir yardımcı program, anlık çalıştırırsanız, bir çeşit değil, bir hizmet cini, ben sadece screen içinde çalıştırmak olacaktır. Daha sonra terminali tekrar açmak ve kapatmak için daha sonra tekrar açabilirsiniz ... Ya da bağlantıyı keserseniz terminali yeniden bağlayın. Linux dağıtım paketinizde olmalı. Sadece bir kaç seçenek var screen

http://www.gnu.org/software/screen/

+0

Cevabınız için teşekkürler. – David

6
Ayrıca komut arka planda çalışmasına ya da oturumdan bağlantısı kesilmiş ne zaman yapmak için nohup kullanabilirsiniz

: açıkça çalıştırmak için nohup söyler komutun sonunda

nohup script.py &

& komut dosyanız arka planda.

İlgili konular