2015-06-30 2 views
-1

Я пытаюсь перейти с PHP на Go и планировать всплывать nginx alltogether. Но я не знаю, как запустить веб-сервер http в качестве deamon в фоновом режиме, и я также не знаю, как автоматически запускать веб-сервер, если я сделаю перезагрузку или как убить процесс.Запуск Go в качестве веб-сервера daemon на CentOS 7

С Nginx я все это

$ systemctl start nginx.service 
$ systemctl restart nginx.service 
$ systemctl stop nginx.service 
$ systemctl enable nginx.service 
$ systemctl disable nginx.service 

Это очень удобно, но мне кажется, что я не могу сделать это с помощью сервера HTTP Go. Я должен скомпилировать и запустить его как любую другую программу Go. Какие существуют решения для этих проблем?

+0

Написание файла блока systemd будет (относительно) простым и даст вам знакомый интерфейс. Как было затронуто @Verran, вы также можете использовать [Супервизор] (http://elithrar.github.io/article/running-go-applications-in-the-background/) (я написал сообщение в блоге о том, как установить это также для двоичного кода Go); плюс все другие варианты, такие как monit/runit/Upstart и т. д. – elithrar

+0

Прохладный. Я бы хотел прочитать этот пост в блоге, что такое URL? – Alex

+0

Нажмите на слово Supervisor в своем первом комментарии (StackOverflow не делает ссылки очевидными!) – elithrar

ответ

0

Это вопрос не с вопросом, а с вопросом о системном администрировании. Есть способы добавить команду systemd (например, в this blog post).

Лично я предпочитаю, чтобы мои приложения были отделены от моих сервисов, поэтому я предпочитаю использовать supervisord для моих программ, которые обычно запускаются, останавливаются или перезапускаются часто. Документация для супервизора довольно проста, но по существу вы можете создать файл конфигурации для описания служб, которые вы хотите запустить, команду, используемую для ее запуска (например, /path/to/go/binary -flag), как вы хотите обрабатывать запуск, остановку, восстановление сбоев, и т. д.

+0

спасибо за совет! – Alex

Смежные вопросы