🚀 SRM - Swift 运行管理器

SRM 是一个轻量级的、基于 Swift 的命令行工具,旨在帮助您管理、监控和控制各种进程,包括 Swift 应用程序、Shell 脚本、二进制文件和命令。它受到 PM2 的启发,提供了一个直观的界面,用于启动、停止、监控进程以及查看实时日志。

✨ 功能特点

📋 预quisites

要使用 SRM,请确保您的系统上安装了 Swift 5.9 或更高版本。以下是如何安装 Swift

macOS 安装

在 macOS 上,如果您使用 Xcode,可能已经安装了 Swift。您也可以通过 Homebrew 安装 Swift

brew install swift

Linux 安装 (基于 Ubuntu/Debian/Fedora 的系统)

对于基于 Linux 的发行版,如 Ubuntu、Debian、Fedora 或 Raspbian,您可以使用一键命令安装 Swift 工具链管理器 Swiftly

curl -s https://raw.githubusercontent.com/Maxim-Lanskoy/Swiftly/main/install/swiftly-install.sh | bash

其他 Linux 发行版

对于诸如 Arch 或其他发行版,请遵循官方 Swift 安装指南(Linux 版)。

🛠️ 安装

  1. 克隆仓库

    git clone https://github.com/Maxim-Lanskoy/SRM.git
    cd SRM
  2. 运行 SRM 设置

    构建并设置 SRM,以确保它可以全局访问

    swift run srm setup

    此命令会构建 SRM,将其添加到您的 $PATH 中,并设置监控服务以在系统启动时启动。

🏃 使用方法

SRM 提供了各种命令来管理和监控进程、脚本和可执行文件。

🔧 通用命令

1. 启动进程

2. 停止进程

3. 重启进程

4. 删除进程

5. 列出进程

查看所有进程及其状态的编号列表,包括 CPU 和内存使用情况

srm list

您也可以使用别名

srm ls

示例输出

┌───────┬───────────────┬──────────┬───────┬──────┬──────┬─────────────────────┐
│ Index │ Name          │ Status   │ PID   │ CPU% │ MEM% │ Start Time          │
├───────┼───────────────┼──────────┼───────┼──────┼──────┼─────────────────────┤
│ 1     │ MyApp         │ running  │ 12345 │ 2.3  │ 1.5  │ 2024-10-11 12:34:56 │
├───────┼───────────────┼──────────┼───────┼──────┼──────┼─────────────────────┤
│ 2     │ FailedProcess │ error    │ 0     │ N/A  │ N/A  │ N/A                 │
├───────┼───────────────┼──────────┼───────┼──────┼──────┼─────────────────────┤
│ 3     │ StoppedProcess│ stopped  │ 0     │ N/A  │ N/A  │ N/A                 │
└───────┴───────────────┴──────────┴───────┴──────┴──────┴─────────────────────┘

6. 查看日志

7. 监控进程

SRM 监控服务在系统启动时自动启动,恢复任何先前正在运行的进程。它还会跟踪所有进程的状态,并尝试重启标记为 --restart 的进程,最多尝试重启 15 次。

注意: srm monitor 命令现在仅用于在系统启动时自动运行,不应手动调用。

🔄 再次运行 SRM 设置

如果由于任何原因,SRM 在您的 $PATH 中不再可用,或者您想重新构建工具二进制文件,您可以重新运行设置命令

srm setup

此命令还将重新注册监控服务。

🔥 销毁 SRM

如果您希望从系统中完全删除 SRM

srm destroy

这将

👨‍💻 工作原理

SRM 依赖于 ShellOut 库来处理进程执行、日志记录和管理。ShellOut 使 SRM 能够使用 shell 命令,运行脚本或直接从 Swift 代码执行二进制文件。

📖 详细命令帮助

有关每个命令及其选项的详细帮助,请使用 --help 标志

srm <command> --help

示例

srm start --help

这将显示命令的使用说明、可用选项和示例。

🖥 兼容性

SRM 兼容以下

💡 提示