Как сохранить скрипт Python на удаленном сервере работающим после закрытия SSH? - PullRequest
2 голосов
/ 01 апреля 2019

Я написал бота для торговли акциями в Python3. Он размещен на сервере (Ubuntu 18.10), на котором я использую iTerm для SSH. Хотите знать, как поддерживать работу скрипта таким образом, чтобы при выходе из сеанса он не убивал активный процесс.

По сути, я хочу подключиться по SSH к моему серверу, запустить скрипт, затем закрыть его и вернуться в него, когда пройдут дни, чтобы остановить процесс.

Ответы [ 4 ]

1 голос
/ 01 апреля 2019

Вы можете использовать экран

sudo apt-get install screen

screen 

./run-my-script

Ctrl-A then D to get out of your screen

Оттуда вы сможете закрыть свой ssh-терминал.Вернитесь позже и запустите

screen -ls

screen -r $screen_running

Обычно на экране появляются первые 5 цифр, которые вы видите после того, как вы перечислили все экраны.Вы можете увидеть, запущен ли сценарий или вы добавили запись в журнал, чтобы увидеть, где вы находитесь в процессе.

1 голос
/ 01 апреля 2019

Вы можете использовать nohup и добавить & в конце вашей команды, чтобы безопасно выйти из сеанса, не прерывая первоначальный процесс.Например, если ваш сценарий имеет имя script.py:

nohup python3 script.py &

Обычно, при запуске команды с использованием & и последующем выходе из оболочки, эта команда завершает выполнение подкомандыс сигналом зависания (kill -SIGHUP <pid>).Это можно предотвратить с помощью nohup, так как он ловит сигнал и игнорирует его, так что он никогда не достигает фактического приложения.

0 голосов
/ 01 апреля 2019

TMUX отлично подходит для этого.Спасибо всем!

0 голосов
/ 01 апреля 2019

Использование tmux - хороший вариант.В качестве альтернативы вы можете запустить команду с & в конце, что позволяет выполнять ее в фоновом режиме.

https://tmuxcheatsheet.com/

...