一个简单的插件,适用于任何可执行的 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
行
请随意贡献!