Я написал небольшой сервер webSocket с использованием ruby. Я запускаю его из командной строки с помощью команды:
ruby websocket_server.rb
Это включит сервер и будет работать до тех пор, пока я не оставлю свое соединение ssh открытым и работающим (я делаю это на сервере, который находится в удаленная ферма серверов, поэтому нет прямого доступа). Я хотел бы понять, как написать два сценария: один запускает программу ruby при запуске, а другой проверяет (скажем, каждые 30 минут), запущена ли программа. В качестве sidenote моя конечная цель - иметь «кнопку» на панели инструментов php, чтобы снова запустить процесс, если он зависает, не дожидаясь процесса проверки и перезапуска (я уже могу проверить состояние процесса).
Использование Ubuntu 14.04 выскочка , таким образом, можно записать маленький файл конфигурации, говорящий, как Вы хотите, чтобы выскочка справилась с Вашим сервисом, который, например, Вы называете "myweb". Используя sudo создают файл, названный /etc/init/myweb.conf
(символьная ссылка оттуда на реальный файл не будет работать) с содержанием что-то как:
description "run webSocket server when network ready"
start on static-network-up
respawn
exec ruby websocket_server.rb
можно проверить это с
sudo start myweb
status myweb
sudo stop myweb
Эти status
, команда покажет, работает ли процесс все еще. respawn
говорит, что Вы хотели бы его автоматически перезапущенный, если это умирает. Запуск, остановитесь, и команды состояния, все просто связываются с initctl. См. man initctl
, man 5 init
для conf формата файла, и новомодная поваренная книга .