14 releases
new 0.18.5 | Dec 17, 2024 |
---|---|
0.18.3 | Nov 30, 2024 |
0.18.2 | Feb 5, 2023 |
0.17.1 | Nov 23, 2022 |
0.13.1 | Jul 9, 2019 |
#1530 in Command line utilities
145 downloads per month
42KB
591 lines
R50
Project
- License: GNU Lesser General Public License, either version 3, or (at your option) any later version.
- This project follows Semantic Versioning 2.0.0
Features
This project helps with resource management of process(es) running on personal Linux machines.
It provides 2 programs: a server, and a client.
-
The server program binds to an abstract Linux socket, then listens for clients.
-
Each client is expected to send:
- One single command (with optional arguments).
- Its credentials: process ID, user ID, group ID.
- Its standard streams: input, output, error.
- Its current working directory and environment variables.
The command will be run by server under client's credentials, with standard streams routed to client's. The new process ID will be sent back to client. So when the user uses Ctrl-C, client can forward it to that process ID.
The idea is to group client processes under one single process: the server. This helps with resource management.
Notes
-
Nightly Rust is required.
-
Due to technical requirements, currently only Linux is supported. Because:
- Linux supports abstract sockets.
- Linux supports sending credentials between processes, via Unix domain socket. Some BSD systems also support this feature, but implementation details differ -- and currently this project only supports Linux's implementation.
For details, see
unix(7)
.
Dependencies
~170KB