作为系统服务
在这一章节中,我们将学习将我们的应用加入到系统服务中。Systemd 是在 Linux 发行版中运行系统服务的一个标准。
systemctl 命令允许我们以一个标准的方法去配置应用,以及管理他的生命周期。详细可以参考https://www.freedesktop.org/software/systemd/man/systemd.service.html。
安装buffalo应用
$ sudo mv myapp /usr/local/bin
$ sudo chown root: /usr/local/bin/myapp
$ sudo chmod +x /usr/local/bin/myapp
创建 systemd配置文件
在 /lib/systemd/system/ 目录下创建myapp.service文件:
[Unit]
Description=My super app
[Service]
ExecStart=/usr/local/bin/myapp
User=root
Group=root
UMask=007
[Install]
WantedBy=multi-user.target
如果我们的应用依赖某个服务,比如数据库。可以加入after:
[Unit]
Description=My super app
After=mysql.service
[Service]
ExecStart=/usr/local/bin/myapp
User=root
Group=root
UMask=007
[Install]
WantedBy=multi-user.target
设置环境变量
我们可以在 /etc/systemd/system/myapp.service.d/目录下创建一个 override.conf文件。
[Service]
Environment="ADDR=0.0.0.0"
Environment="GO_ENV=production"
Environment="SESSION_SECRET=kqdjmlkajdùméa]$"
每行定义一个环境变量。
运行service
现在systemd service已经准备好了。我们可以通过systemctl 和 journalctl命令来测试了。
启动服务,
$ sudo systemctl start myapp.service
从标准输出中查看服务的运行日志
$ journalctl -u myapp.service -f
停止服务
$ sudo systemctl stop myapp.service
开机启动
可以将服务加入开机启动,这样重启主机的时候,服务也可以自动启动。
$ sudo systemctl enable myapp.service