守护进程
Go 开发的应用可以通过守护进程的方式部署。这也是部署简单的 API 服务器时常用的方式。接下来的例子中,我们使用了 Ubuntu 系统下的 systemctl
。
设置服务器环境
在部署应用前,你需要设置服务器的环境,比如初始化数据库或者添加权限。
创建项目文件夹
创建一个存储可执行文件的文件夹,这里我们将在 /home/ubuntu/
中创建。
- api-server
- config.yaml
ℹ️
记得在文件夹中添加你的配置文件或静态资源,否则将会报错。
创建服务
在 /etc/systemd/system/
中创建一个 service 文件。
/etc/systemd/system/my-api.service
[Unit]
Description=SERVER API
# 更改为你使用的数据库
After=mariadb.service
[Service]
Type=simple
WorkingDirectory=/home/ubuntu/server/
ExecStart=/home/ubuntu/server/api-server
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启动服务
通过以下命令启动服务:
sudo systemctl start my-api.service
GoFrame
在 *nix
系统下提供了平滑重启和关闭的功能,你可以使用以下命令来平滑地重启或者关闭你的服务:
- 重启服务:
kill -SIGUSR1 ProcessID
- 关闭服务:
kill -SIGTERM ProcessID
ℹ️
也可以使用类似
supervisor
的其他工具来管理你的服务进程。