STDHTTP
STDHTTP is a Go application that provides an HTTP interface for standard streams. It allows redirecting stdout
and stderr
of running processes to specified HTTP endpoints and also manages the processes themselves using a built-in broker.
Features
- Redirect
stdout
and stderr
to specified URLs via HTTP.
- Manage processes started with
stdhttp run
through commands like stdhttp list
and stdhttp kill
.
- Start a debug server to monitor and manage processes in debug mode.
Installation
You can download pre-built binaries for your operating system from the GitHub releases page.
Steps:
- Go to the Releases page.
- Download the appropriate archive for your OS:
- For Linux:
stdhttp-linux-amd64.tar.gz
- For Windows:
stdhttp-windows-amd64.tar.gz
- Extract the archive:
- After extracting, you should have the following binaries:
- Linux:
stdhttp
- Windows:
stdhttp.exe
and stdhttpd.exe
- (Optional) Move the binary to a directory in your
$PATH
:
Usage
The STDHTTP application has three main commands: run
, broker
, and debug
.
Running a command with stdout
and stderr
redirected to HTTP
You can redirect the standard streams stdout
and stderr
of a command to specified HTTP URLs using the --stdout-url
and --stderr-url
options:
stdhttp run --stdout-url URL --stderr-url URL COMMAND [ARG ...]
Example:
stdhttp run --stdout-url http://localhost:8080/stdout --stderr-url http://localhost:8080/stderr ls -la
Managing processes via the broker
If you start the broker with the stdhttp broker
command, you can monitor and manage the processes you run:
Start the broker:
stdhttp broker
List active processes (wait for a 10 seconds after starting the broker):
stdhttp list
Run a command:
stdhttp run COMMAND [ARG ...]
Kill a process by its PID or kill processes by a pattern:
stdhttp kill {PID|PATTERN}
If broker goes down, you can restart it with the stdhttp broker
command. Also if you want to see the broker in the list of processes, you can run it with stdhttp run
command:
stdhttp run stdhttp broker
Or you can run the broker in the background:
stdhttpd run stdhttp broker
Debug Mode
You can also start a debug server to track requests in debug mode. To do this, use the command:
stdhttp debug
Once the debug server is running, you can run commands with the --debug flag to send requests to the debug server:
stdhttp run --debug COMMAND [ARG ...]
Background Mode
You can run stdhttp
in the background on both Linux and Windows.
Linux
To run stdhttp
in the background on Linux, you can use the &
symbol after the command.
Example:
stdhttp run --stdout-url http://localhost:8080/stdout --stderr-url http://localhost:8080/stderr COMMAND [ARG ...] &
You can also use standard tools like nohup
or screen
for more advanced background management if needed.
Windows
On Windows, to run stdhttp
in background mode, you should use the stdhttpd.exe
binary instead of stdhttp.exe
. This daemon version (stdhttpd.exe
) will run the process in the background without holding up the terminal.
Example:
stdhttpd.exe run --stdout-url http://localhost:8080/stdout --stderr-url http://localhost:8080/stderr COMMAND [ARG ...]
This allows you to start processes and redirect their output without occupying the terminal window.
Configuration
STDHTTP uses options and environment variables for configuration. For more details, run stdhttp --help
.
License
STDHTTP is distributed under the BSD 3-Clause License. For more details, see the LICENSE.md
file.