1 回答
TA贡献1794条经验 获得超7个赞
开发环境
对于开发,您可能需要进程管理器来监视文件更改并实时重新加载服务器二进制文件。
我习惯使用Godegansta 的 杜松子酒来完成 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
start如果您在第一个或之后更改单元文件enable,则需要运行:
systemctl daemon-reload
要查看进程的状态,请运行:
systemctl status my_app.service
要查看进程的 STDOUT,请运行:
journalctl -f -u my_app.service
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报