Подтвердить что ты не робот

Как постоянно запускать Python script на сервере EC2?

Я установил сервер Amazon EC2. У меня есть Python script, который должен загружать большие объемы данных из Интернета на сервер. Я могу запустить script с терминала через ssh, однако очень часто я теряю соединение ssh. Когда я потеряю соединение, останавливается script.

Есть ли способ, когда я говорю script для запуска с терминала, и когда я отсоединяюсь, script все еще работает на сервере?

4b9b3361

Ответ 1

У вас есть несколько вариантов.

  • Вы можете добавить свой script в cron для регулярного запуска.
  • Вы можете запустить свой script вручную и отсоединить + фон, используя nohup.
  • Вы можете запустить такой инструмент, как GNU Screen, и отсоединить терминал и выйти из системы, только чтобы продолжить, когда вы остановились позже. Я использую это много.
    • Например:
      • Войдите в свой компьютер, запустите: screen.
      • Начните свой script и просто закройте свой терминал или правильно отсоедините сеанс: Ctrl + A, D, D.
      • Отключиться от вашего терминала.
      • Повторно подключитесь позже и запустите screen -rD. Вы должны увидеть свои вещи так же, как вы его оставили.
  • Вы также можете добавить свой script в /etc/rc.d/ для вызова в книге и всегда работать.

Ответ 2

Вы также можете использовать nohup, чтобы ваш script выполнялся в фоновом режиме или когда вы отключились от сеанса:

nohup script.py &

& в конце команды явно сообщает nohup запустить script в фоновом режиме.

Ответ 3

Если это просто утилита, в которой вы запускаете ad-hoc, а не какой-нибудь сервисный демон, я просто запускаю его в screen. Чем вы можете отключиться, если хотите, и откройте терминал позже. Или снова подключите терминал, если вы отключитесь. Это должно быть в диспетчере пакетов linux distros. Просто найдите screen

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