UNIX job control program, much like Supervisor. Consists of two programs, taskmasterd is a server daemon which does the actual job control work. Taskmasterctl is an interactive UI for communicating with the daemon.
virtualenv venv -p python3 && source venv/bin/activate
pip install -r requirements.txt
python3 setup.py develop
Launch server
taskmasterd [-c/--configuration FILE] [-n/--nodaemon]
Run client in interactive mode
taskmasterctl
Run tests
python setup.py test
programs:
program_name:
command: list[bin, arg, arg, ...] - REQUIRED
autostart: true/false
autorestart: ['always', 'never', 'unexpected']
stderr_logfile: path
stdout_logfile: path
instances: int
stop_signal: 1, 3, 5, 9 etc.
kill_timeout: int(seconds)
restarts: int
expected_exit: [int, int, ...]
startup_wait: int(seconds)
environment: [key:val, key:val, ...]
dir: path
umask: octal, eg. 0o22
server:
port: eg. 9999 - REQUIRED
CMD | ACTION |
---|---|
help | Display help |
status | Display processes |
start name/all | Start program |
stop name/all | Stop program |
restart name/all | Restart program |
tail name stdout/stderr | Read last 10 entries from program logs |
attach name stdout/stderr | Attach fd of a program to console |
reread | Reread configuration file |
update | Apply configuration file changes |
reload | run reread + update |
shutdown | Terminate taskmasterd |
quit/exit | Exit |
- PyYAML==5.1