4个版本 (2个重大更新)
0.3.0 | 2024年1月17日 |
---|---|
0.2.0 | 2023年12月22日 |
0.1.1 | 2023年12月17日 |
0.1.0 | 2023年12月16日 |
在 Unix API 中排名 456
每月下载量 45
58KB
1K SLoC
比tmux更复杂的方式管理长时间运行的程序的小巧程序。
链接
概述
sopht由两个程序组成:一个在Unix套接字上运行的 服务器 (sophtd
),它监听来自sopht 客户端 (sopht
) 的连接。服务器负责启动和管理客户端请求的任何进程。客户端负责验证用户的命令,与服务器通信,并将最终以可读的方式将响应传递给用户。
sopht是一个用户级程序。这意味着在多用户环境中,每个用户都应该在后台运行自己的sophtd
实例。sopht绝 不能 以root/admin用户身份运行!实际上,如果以类似于root
的特权用户身份运行,它将失败,因为这个用户没有主目录,sopht需要创建Unix套接字。有关如何正确安装客户端和服务器的信息,请参阅下面的 安装 部分。
使用方法
sopht v0.3.0
cute process manager
(slightly) more sophisticated than tmux
commands:
help
prints this message
hello
requests the server greet you. kinda like a ping command, but friendlier
shutdown
shuts the server down gracefully
start <...>
attempts to run the rest of the arguments <..> as a command and begins
managing the resulting process. pass "--restart <policy>" to set the restart
policy of the process. valid restart policies are "never", "always", and
"on-failure". if setting the restart policy to "on-failure", the
"--retries <retry-count>" option must also be specified.
output <pid>
completely retrives the output of the process with the specified PID
status
retrieves the status of all managed processes
stop <pid>
stops the process with the specified PID and sets its restart policy to
"never"
restart <pid>
stops the process with the specified PID and runs the same command again,
creating a new process with a different PID.
send <pid> <...>
sends the rest of the arguments <...> as input to the process with PID
<pid> a newline is automatically appended onto the output given to the
process.
change-policy <pid> <policy>
changes the policy of process with PID <pid> to the policy given by
<policy>. unlike the "start" command, the policy must be written as one
string like "on-failure 3" or "always".
贡献
有许多方法可以帮助,请参阅 贡献 文档以了解如何。
构建和安装
目前,sopht仅在sourcehut上托管。但它遵循常规的cargo build
过程,因此只需克隆此存储库并构建它。(请确保使用--release
选项以生成优化和精简的二进制文件!)之后,目前安装sopht的最佳方式是使用内置的install
程序将其复制到/usr/local/bin
install ./target/release/sopht /usr/local/bin/sopht
install ./target/release/sophtd /usr/local/bin/sophtd
之后,将sopht.service
复制到/etc/systemd/user/
。现在,通过systemctl --user start sopht
和systemctl --user stop sopht
启动和停止sophtd
。有些人可能更喜欢通过systemctl --user enable sopht
启用sopht,以便在系统启动时可用。
此外,如果您有cargo
,sopht也可以通过crates.io安装。不过,这将阻止您通过上述服务文件运行sopht
cargo install sopht
依赖项
~4–16MB
~151K SLoC