Files
frontier/dist/systemd/README.md
T
Austin Zhai f87bd7941e Feat/systemd (#90)
* feat: add systemd and Makefile

* feat: update en version README

* chore: update go version

* feat: rename daemon config

* feat: add systemd and Makefile

* feat: update en version README

* feat: rename daemon config
2026-02-08 09:22:49 +08:00

4.1 KiB
Raw Blame History

Frontier Systemd Service

这个目录包含了将Frontier作为systemd服务运行的配置文件。

文件说明

  • frontier.service - systemd服务配置文件
  • install.sh - 自动安装脚本
  • uninstall.sh - 自动卸载脚本
  • README.md - 本说明文件

快速安装

方法1: 使用Makefile(推荐)

# 使用Makefile安装systemd服务
sudo make install-systemd

方法2: 使用安装脚本

# 构建frontier二进制文件
make frontier

# 以root权限运行安装脚本
sudo ./dist/systemd/install.sh

方法3: 手动安装

  1. 构建并安装frontier
make install-frontier
  1. 创建frontier用户:
sudo useradd --system --no-create-home --shell /bin/false frontier
  1. 创建必要的目录:
sudo mkdir -p /var/log/frontier /var/lib/frontier
sudo chown -R frontier:frontier /var/log/frontier /var/lib/frontier
  1. 安装systemd服务:
sudo cp dist/systemd/frontier.service /etc/systemd/system/
sudo systemctl daemon-reload

服务管理

启用和启动服务

# 启用服务(开机自启)
sudo systemctl enable frontier

# 启动服务
sudo systemctl start frontier

# 检查服务状态
sudo systemctl status frontier

服务控制

# 启动服务
sudo systemctl start frontier

# 停止服务
sudo systemctl stop frontier

# 重启服务
sudo systemctl restart frontier

# 重新加载配置
sudo systemctl reload frontier

查看日志

# 查看实时日志
sudo journalctl -u frontier -f

# 查看最近的日志
sudo journalctl -u frontier -n 100

# 查看特定时间段的日志
sudo journalctl -u frontier --since "2024-01-01" --until "2024-01-02"

配置说明

服务配置特性

  • 用户隔离: 以frontier用户运行,提高安全性
  • 自动重启: 服务异常退出时自动重启
  • 资源限制: 设置了文件描述符和进程数限制
  • 安全设置: 启用了多种安全保护措施
  • 日志管理: 输出到systemd journal

端口配置

Frontier默认监听以下端口:

  • 30011 - Service bound端口
  • 30012 - Edge bound端口

确保防火墙允许这些端口的访问。

配置文件

服务使用/usr/conf/frontier.yaml作为配置文件。你可以根据需要修改配置:

edgebound:
  listen:
    network: tcp
    addr: 0.0.0.0:30012
  edgeid_alloc_when_no_idservice_on: true
servicebound:
  listen:
    network: tcp
    addr: 0.0.0.0:30011

卸载

使用Makefile(推荐)

sudo make uninstall-systemd

使用卸载脚本

sudo ./dist/systemd/uninstall.sh

手动卸载

# 停止并禁用服务
sudo systemctl stop frontier
sudo systemctl disable frontier

# 删除服务文件
sudo rm /etc/systemd/system/frontier.service
sudo systemctl daemon-reload

# 删除用户(可选)
sudo userdel frontier

# 删除目录(可选)
sudo rm -rf /var/log/frontier /var/lib/frontier

故障排除

常见问题

  1. 服务启动失败

    • 检查二进制文件是否存在:ls -la /usr/bin/frontier
    • 检查配置文件是否存在:ls -la /usr/conf/frontier.yaml
    • 查看详细错误:sudo journalctl -u frontier -n 50
  2. 端口被占用

    • 检查端口使用情况:sudo netstat -tlnp | grep -E ':(30011|30012)'
    • 修改配置文件中的端口设置
  3. 权限问题

    • 确保frontier用户存在:id frontier
    • 检查目录权限:ls -la /var/log/frontier /var/lib/frontier

调试模式

如果需要调试,可以临时修改服务配置:

sudo systemctl edit frontier

添加以下内容:

[Service]
ExecStart=
ExecStart=/usr/bin/frontier --config /usr/conf/frontier.yaml -v 2

然后重启服务:

sudo systemctl restart frontier

安全注意事项

  1. 服务以非特权用户运行
  2. 启用了多种systemd安全特性
  3. 建议定期更新frontier版本
  4. 监控服务日志以发现异常活动
  5. 确保配置文件权限正确(644

支持

如果遇到问题,请:

  1. 查看systemd日志:journalctl -u frontier
  2. 检查frontier项目文档
  3. 提交issue到项目仓库