一个简单的插件,适用于任何可执行的 Swift 包,它提供了通过 systemd 管理它的能力。
要将 systemd 作为 SwiftPM 插件安装,首先将以下行添加到您的 Package.swift 文件中
.package(url: "https://github.com/MihaelIsaev/SwiftSystemd.git", from:"1.0.0")
systemd 的目的是将您的应用程序作为守护进程运行并监控它。
第一步是生成适当的配置文件并保存它。
swift run systemd install
它会提示您几个问题,以生成并保存正确的配置文件。
或者您可以使用参数来预定义值
| 参数 | 描述 |
|---|---|
| -c,--config | 配置类型:release 或 debug |
| -t,--target | 可执行目标名称 |
| -u,--user | 服务将在哪个用户下运行 |
swift run systemd install -c release -t App -u mike
它会生成以下配置文件
[Unit]
Description="AppName"
After=network.target
[Service]
User={user}
EnvironmentFile=/path/to/AppName/.env
WorkingDirectory=/path/to/AppName
TimeoutStopSec=2
Restart=always
ExecStart=/path/to/AppName/.build/{config}/{target}
[Install]
WantedBy=multi-user.target
💡 请随意贡献您自己的配置变体
swift run systemd uninstall
删除 systemd 配置文件,并停止服务(如果它正在运行)。
swift run systemd start
使用 systemctl start 启动您的应用程序
swift run systemd restart
使用 systemctl restart 重启您的应用程序
swift run systemd stop
如果您的应用程序正在通过 systemd 运行,则使用 systemctl stop 停止它。
swift run systemd enable
通过 systemctl enable 启用现有服务配置。
swift run systemd disable
通过 systemctl disable 禁用现有服务配置。
swift run systemd kill
通过 systemctl kill 向正在运行的服务发送 kill 信号。
swift run systemd status
通过 systemctl status 显示您的应用程序的状态。
swift run systemd daemon-reload
通过 systemctl daemon-reload 重新加载所有 systemd 服务。
swift run systemd logs
通过 journalctl 显示您的应用程序的实时日志。
swift run systemd logs --limit 100
通过 journalctl 显示您的应用程序日志的最后 100 行
请随意贡献!