37 lines
933 B
Bash
Executable File
37 lines
933 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# worker.sh - setup and control of workers
|
|
|
|
# worker_add(name, interval)
|
|
function worker_add() {
|
|
if [[ -x "${cfg[namespace]}/workers/$1/worker.sh" ]]; then
|
|
echo "[WRKR] adding worker $1"
|
|
while true; do
|
|
source "${cfg[namespace]}/workers/$1/worker.sh"
|
|
sleep $2
|
|
if [[ $(cat "${cfg[namespace]}/workers/$1/control") == "die" ]]; then
|
|
echo "" > ${cfg[namespace]}/workers/$1/control
|
|
while true; do
|
|
if [[ $(cat "${cfg[namespace]}/workers/$1/control") == "run" ]]; then
|
|
echo "" > "${cfg[namespace]}/workers/$1/control"
|
|
break
|
|
fi
|
|
sleep $2
|
|
done
|
|
fi
|
|
done &
|
|
else
|
|
echo "[WRKR] Broken config - workers/$1/worker.sh does not exist, or is not executable?"
|
|
fi
|
|
}
|
|
|
|
# worker_kill(name)
|
|
function worker_kill() {
|
|
echo "die" > "${cfg[namespace]}/workers/$1/control"
|
|
}
|
|
|
|
# worker_resume(name)
|
|
function worker_resume() {
|
|
echo "run" > "${cfg[namespace]}/workers/$1/control"
|
|
}
|