Taskmaster is a job control manager project for 42 school. It allows its users to control a number of processes on operating systems.
Inspired by the Supervisor
Create a virtual environment using the following command:
-
venv
python3 -m venv venv && source venv/bin/activate
-
pip
pip install -r requirements.txt
or use the devcontainer provided in the repository.
-
From pypi
pip install 42-taskmaster
-
From source
pip install .
- Without arguments (load taskmaster.yml from current directory)
taskmaster
- With arguments
taskmaster -f /path/to/config.yml
- Without install
python -m taskmaster.taskmaster
email: # Optionnal
to: ""
smtp_email: ""
smtp_password: ""
smtp_server: "smtp.gmail.com"
smtp_port: 465
services:
- name: sleep
cmd: "sleep 100"
numprocs: 8 # min 1 max 32
umask: 077
workingdir: /tmp
autostart: true
autorestart: unexpected # always, never unexpected
exitcodes:
- 0
- 2
startretries: 3
starttime: 5
stopsignal: USR1
stoptime: 10
env: # Optionnal
key: "value"
stdout: ./taskmaster.stdout # Optionnal (if not present don't log)
stderr: ./taskmaster.stderr # Optionnal
# user: exemple # Optionnal (Downgrade privileges)
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Nard Théo - GUI / Configuration
Lafay Timothée - Services management