作为系统服务

在这一章节中,我们将学习将我们的应用加入到系统服务中。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

本文章首发在 LearnKu.com 网站上。
上一篇 下一篇
superwen
讨论数量: 0
发起讨论 只看当前版本


暂无话题~