golang - Go 애플리케이션을 Supervisor로 대몬화

원문

Go는 언어 레벨에서 daemon화가 지원되지 않으므로 Supervisor 이나 systemd로 daemon화 한다.

Supervisor 도입

sudo apt-get install supervisor

Go 애플리케이션 빌드

go build hoge

supervisord.conf 편집

sudo vim /etc/supervisor/supervisord.conf

아래 내용을 기록

[program:hoge]
command = /path/to/hoge
autostart = true
startsecs = 5
user = root
redirect_stderr = true

supervisor 실행

sudo supervisord

에러가 나온다면

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

위와 같은 것이 나온다면

ps -ef | grep supervisord

를 실행

  
root     17310     1  0 05:40 ?        00:00:02 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
pi       17638 16611  0 06:17 pts/0    00:00:00 grep --color=auto supervisord

pid를 확인하고 kill 한다

kill 17310

이 글은 2018-12-12에 작성되었습니다.