У меня есть и скрипт 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?
Используйте программу под названием screen
.
Установите его на сервер и запустите screen
, и любая запущенная программа останется активной на сервере.
Чтобы установить его, запустите
sudo apt-get install screen
Подробнее о других командах здесь http://www.kuro5hin.org/story/2004/3/9/16838/14935 [ 117]