Постоянно запускать скрипт

0

У меня есть и скрипт ruby, и исполняемый файл qt. Оба они в значительной степени выполняют одну и ту же задачу, но прослушивают разные порты. По сути, это серверы сокетов UDP, которые прослушивают входящие соединения через указанный порт на моем удаленном сервере Ubuntu. Они прослушивают UDP-пакеты, поступающие с GSM-модемов GPS-устройств. Теперь прямо сейчас я могу подключиться к удаленному серверу по ssh и запустить скрипт ruby, чтобы начать прослушивание соединений с указанным портом: «ruby server.rb». Но как только я выхожу из системы и закрываю ssh-соединение, сценарий, вероятно, перестает слушать. Я хочу, чтобы этот сценарий продолжал прослушивать входящие соединения через этот порт навсегда, даже после того, как я выйду из сервера.

Например:

sudo netstat -tulpn 
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      25391/mysqld    

Этот сервер mysqld постоянно прослушивает входящие соединения с портом 3306. Я хочу, чтобы мой скрипт делал то же самое. Я хочу иметь возможность запускать netstat и всегда видеть, как моя программа работает и прослушивает указанный порт.

Каков наилучший подход в этой ситуации? Создать демона? Или использовать nohup?

JohnMerlino
источник

Ответы:

0

Используйте программу под названием screen.

Установите его на сервер и запустите, screenи любая запущенная программа останется активной на сервере.

Чтобы установить его, запустите

sudo apt-get install screen

Подробнее о других командах здесь http://www.kuro5hin.org/story/2004/3/9/16838/14935

Меер Борг
источник
привет это интересный ответ, экран такой же, как Бёбу? Потому что кто-то еще написал приложение, которое делает что-то похожее на моем сервере, но они сделали это в byobu. Но я думаю, что экран это то же самое? Я не понял, для чего это.
ДжонМерлино
@JohnMerlino IT не мультиплексор экрана терминала. Это программа, которая заставляет вещи оставаться в памяти, это все равно что вводить команду nohup, за исключением того, что когда вы выходите из сеанса ssh и возвращаетесь, вы на самом деле видите вывод команды более приятным способом. Это все равно что перенести сеанс терминала в фоновый режим. Я использую его для поддержки серверов, так как вы можете даже вырезать и вставить текст, используя только клавиши курсора. Очень хорошая программа для изучения. Доступно в каждом известном мне дистрибутиве
Meer Borg
В ссылке, которую вы мне прислали, самая первая строка гласит: «Экран лучше всего описывать как терминальный мультиплексор».
JohnMerlino
Позже в этой статье говорится: «Приложив немного дополнительной работы, вы даже можете подключить несколько терминалов к одному сеансу - отлично подходит для совместной работы и встреч». Разве это не по определению мультиплексор экрана терминала?
ДжонМерлино
@JohnMerlino Я пытался сказать, что это не терминал с большим количеством окон. Наверное, следовало бы заявить, что более четко вы правы!
Меер Борг