I have the following requirements for a remote process execution/management system and thought I'd ask if anyone had seen something similar available under free software/open source licensing terms before I write it myself:
Runs on Linux.
Each machine in a cluster needs to have a local execution/management daemon running as a system service that can do the following:
1. Maintain a TCP connection with a client application (initiated by the client).
2. Start a child process with executable path, command line arguments, process environment, and stdout/stderr redirect to files in response to a command received from the client.
3. Terminate a child process in response to a command received from the client.
4. Report child process termination asynchronously to all connected clients.
5. Report child process statistics (CPU, I/O, etc) asynchronously to all connected clients (This is an optional feature).
Basically, I have an environment in which long-running processes need to be mixed with batch processes under control of a (set of) master server(s) that maintains the current global state, configuration of managed processes (running or not), and load balances new processes. Asynchronous reporting of child process termination without polling is essential, so ssh is not appropriate. The master server will be fairly customized, but I'm hoping to find a daemon that can manage the activities on a single machine.