Как запустить программу Go в качестве демон в Ubuntu?
Каков правильный способ запуска программы Go в качестве демон в Ubuntu? Затем я буду следить за ним с Монитом. Должен ли я просто сделать что-то вроде:
go run myapp.go &
Есть ли что-то особенное для Go, которое я должен учитывать?
Ответ 1
Вы должны создать исполняемый файл для своей программы (go build), а затем либо напишите script для upstart, и он запустит вашу программу как демона для вас или использовать внешний инструмент, например daemonize. Я предпочитаю последнее решение, потому что оно не зависит от зависящего от системы выскочка. С помощью daemonize вы можете запустить свое приложение, например
Но если то, что вам нужно, просто отсоединяется от процесса, я видел рекомендации либо выполнить одно из следующих действий:
nohup go run myapp.go
или
go run myapp.go & disown
Вы также можете использовать диспетчер процессов, например, написать init.d, Startup или использовать что-то вроде Supervisor, что мне лично очень нравится.