Skip to content

msantos/tcpexec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e73fc8c · Apr 27, 2024

History

16 Commits
Aug 5, 2021
Aug 1, 2021
Feb 8, 2022
Sep 15, 2021
Aug 21, 2021
Apr 27, 2024
Sep 18, 2022

Repository files navigation

SYNOPSIS

tcpexec [OPTION] [IPADDR:]PORT COMMAND ...

DESCRIPTION

tcpexec: a minimal, UCSPI 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/sh

exec tcpexec 127.0.0.1:9090 cat
  • service/echo2/run
#!/bin/sh

exec tcpexec 127.0.0.1:9090 cat
  • service/echo3/run
#!/bin/sh

exec 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 TCP

TCPREMOTEIP : source IPv4 or IPv6 address

TCPREMOTEPORT : source port

TCPLOCALIP : destination IPv4 or IPv6 address

TCPLOCALPORT : destination port

About

tcpexec: a minimal, UCSPI inetd

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published