Acabei de migrar um aplicativo da Web do NodeJS para o Go e estou tendo problemas para executá-lo na inicialização. Anteriormente, usando meu aplicativo Node, eu usaria pm2 para lidar com a inicialização do aplicativo. No entanto, não consigo encontrar uma boa maneira de fazer isso com o Go.
Eu procurei fazer meu próprio serviço com, rc.d
mas realmente não consigo encontrar nada tão útil. Existe uma maneira fácil de fazer isso? Eu posso compilar o código-fonte para binário, se necessário.
No momento eu tenho apenas rodando em um TTY, mas eu realmente gostaria que fosse um daemon.
Edit: Só para esclarecer, estou usando o NGiNX para reverter o proxy do aplicativo Go.
Se você não quiser usar a
rc.d
infraestrutura (deveria), basta adicionar o que for apropriado,/etc/rc.local
MAS lembre-se de que tudo é executado comoroot
, então você provavelmente desejará usarsu
para executar seu aplicativo como outro usuário (e enquanto você está nisso, verifique se você deseja executá-lochroot
em algum lugar).Se você quiser seguir o
rc.d
caminho, você pode querer começar percorrendo as páginas man pararc.d
erc.subr
, e o modelo em/usr/ports/infrastructure/templates/rc.template
também pode ser de grande ajuda. Outra opção é encontrar um aplicativo web Go já portado, instalá-lo e ver como ele é executado. Por exemplo, o gitea é instalado como um binário compilado e tem um/etc/rc.d/gitea
script muito simples:Eu não sou realmente um cara do OpenBSD, mas você não precisa apenas garantir que o httpd inicie na inicialização?