https://github.com/msantos/tcpexec
tcpexec: a minimal, UCSPI inetd
https://github.com/msantos/tcpexec
daemontools exec inetd
Last synced: about 2 months ago
JSON representation
tcpexec: a minimal, UCSPI inetd
- Host: GitHub
- URL: https://github.com/msantos/tcpexec
- Owner: msantos
- License: isc
- Created: 2021-07-31T12:00:48.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-04T11:23:57.000Z (2 months ago)
- Last Synced: 2025-04-04T12:26:44.744Z (about 2 months ago)
- Topics: daemontools, exec, inetd
- Language: C
- Homepage:
- Size: 26.4 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SYNOPSIS
tcpexec [*OPTION*] [*IPADDR:*]*PORT* *COMMAND* *...*
# DESCRIPTION
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 9090 cat$ tcpexec 127.0.0.1:9090 cat
$ tcpexec ::1: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 127.0.0.1:9090 cat
```* service/echo2/run
```
#!/bin/shexec tcpexec 127.0.0.1:9090 cat
```* service/echo3/run
```
#!/bin/shexec tcpexec 127.0.0.1:9090 cat
```Then run:
svscan service
# Build
make
#### static executable using musl
./musl-make# OPTIONS
-v, --verbose
: write additional messages to stderr-h, --help
: usage summary# ENVIRONMENT VARIABLES
PROTO
: protocol, always set to TCPTCPREMOTEIP
: source IPv4 or IPv6 addressTCPREMOTEPORT
: source portTCPLOCALIP
: destination IPv4 or IPv6 addressTCPLOCALPORT
: destination port