/Task-Master

Primary LanguageJavaScript

Taskmaster is a program manager like supervisor in Nodejs, 'graphic' interface in Html/Css/Angular


First time : 

 . npm install
 . node taskmaster.js
 . http://localhost:8080/ (designed view)
 . tail -f logs/taskmaster.logs (display log))


 Configuration : 

 Taskmaster parse  /config/config.json and run program.

 Different properties :

   .cmd          -> program,application,cmd to run.
   .numprocs     -> number of process to run.
   .umask        -> the rights granted (read,write,exec for user,group,all).
   .workingdir   -> where the program running.
   .autostart    -> if launched at begin (= true) or not (= false).
   .autorestart  -> always (graceful and crash exit) / never / unexpected (crash exit).
   .exitcodes    -> What type of return value needed to considerate graceful stop.
   .startretries -> how many times program try to restart.
   .starttime    -> How long has the program to be launched, to considerate successful
   .stopsignal   -> What signal is sent to stop gracefully program.
   .stoptime     -> how many time program need to be considerate stopped
   .stdout       -> Where the result and logs of program are stocked
   .stderr       -> Wherre error return are stocked 
   .env          -> With which environments the program is launched


   Exemple JSON format : 

    "ping" : {
        "cmd" : "/sbin/ping 8.8.8.8",
        "numprocs" : 6,
        "umask": "002",
        "workingdir": "/tmp",
        "autostart": true,
        "autorestart": "never",
        "exitcodes": [0, 1, 2],
        "startretries": "2",
        "starttime": 5,
        "stopsignal": "INT",
        "stoptime": 10,
        "stdout": "/logs/ping.stdout",
        "stderr": "/logs/ping.stderr",
        "type": "loop",
        "env": {
            "STARTED_BY": "taskmaster",
            "COUCOU": 54
        } 
    }



Command line : 

  .start [process_name]                 : Start process
  .stop all / stop [process_name] [...] : Stop one/all process
  .restart [process_name]               : Restart process without check last modification in config file
  .status / status [process_name] [...] : States of process
  .reload [process_name]                : Reload config.json and apply modification
  .shutdown                             : Exit taskmaster and close all process supervised