https://github.com/msantos/tcpexec-rs
tcpexec: a minimal, UCSPI inetd
https://github.com/msantos/tcpexec-rs
daemontools inetd
Last synced: 2 months ago
JSON representation
tcpexec: a minimal, UCSPI inetd
- Host: GitHub
- URL: https://github.com/msantos/tcpexec-rs
- Owner: msantos
- License: isc
- Created: 2022-01-09T13:54:27.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-31T12:20:58.000Z (over 2 years ago)
- Last Synced: 2025-02-13T05:30:13.525Z (4 months ago)
- Topics: daemontools, inetd
- Language: Rust
- Homepage:
- Size: 5.86 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SYNOPSIS
tcpexec *IPADDR*:*PORT* *COMMAND* *...*
# DESCRIPTION
[tcpexec](https://github.com/msantos/tcpexec): a minimal,
[UCSPI](https://jdebp.uk/FGA/UCSPI.html) inetd`tcpexec` attaches the standard input and output of a command to a
TCP socket:* exec(3): data is not proxied via an intermediary process
* `SO_REUSEPORT`: multiple processes concurrently listen and accept data
on the same port# EXAMPLES
## echo server
```
$ tcpexec [::1]:9090 env$ tcpexec [::]:9090 env
$ tcpexec 127.0.0.1:9090 env
$ tcpexec 0.0.0.0:9090 env
```## Supervised using daemontools
An echo server allowing 3 concurrent connections:
service/
├── echo1
│ └── run
├── echo2
│ └── run
└── echo3
└── run* service/echo1/run
```
#!/bin/shexec tcpexec [::1]:9090 cat
```* service/echo2/run
```
#!/bin/shexec tcpexec [::1]:9090 cat
```* service/echo3/run
```
#!/bin/shexec tcpexec [::1]:9090 cat
```Then run:
svscan service
# Build
cargo build
# OPTIONS
None
# ENVIRONMENT VARIABLES
PROTO
: protocol, always set to TCPTCPREMOTEIP
: source IPv4 or IPv6 addressTCPREMOTEPORT
: source portTCPLOCALIP
: destination IPv4 or IPv6 addressTCPLOCALPORT
: destination port