Koa*_*ung 19

开发环境

对于开发,您可能需要进程管理器来监视文件更改并实时重新加载服务器二进制文件。

我已经习惯了Godegansta 的 gin来做这样的 web 服务器/api 服务器开发工作。还有新鲜的,反射的,也许还有 其他一些。

生产环境

我正在使用 systemd 在生产环境中的 Linux 上管理我的 Golang 应用程序进程。

定义单位

我的单元文件如下所示:

[Unit]

[Install]
WantedBy=multi-user.target

[Service]
ExecStart=/usr/local/bin/<MY_GO_APP>
WorkingDirectory=/home/user/<MY_GO_APP_HOME_DIR>
User=<MY_GO_APP_USER>
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=%n
/etc/systemd/system/my_app.service
systemctl start my_app.service

会自动启动服务。按照配置,systemd 将始终在停止时重新启动您的进程。

日常操作

要在机器启动时始终打开它:

systemctl enable my_app.service
startenable
systemctl daemon-reload

要查看进程的状态,请运行:

systemctl status my_app.service

要查看进程的 STDOUT,请运行:

journalctl -f -u my_app.service

如需进一步帮助,请阅读手册页。