Files
cloudron-box/src/scripts/starttask.sh

45 lines
906 B
Bash
Raw Normal View History

#!/bin/bash
set -eu -o pipefail
if [[ ${EUID} -ne 0 ]]; then
echo "This script should be run as root." > /dev/stderr
exit 1
fi
if [[ $# -eq 0 ]]; then
echo "No arguments supplied"
exit 1
fi
if [[ "$1" == "--check" ]]; then
echo "OK"
exit 0
fi
readonly task_id="$1"
readonly logfile="$2"
readonly nice="$3"
readonly id=$(id -u yellowtent)
readonly service_name="cloudron-task-${task_id}"
systemctl reset-failed "${service_name}" || true
# keep the env vars in sync with box.service
systemd-run --unit "${service_name}" \
-p BindsTo=box.service \
--pipe \
--wait \
--property=OOMScoreAdjust=-1000 \
--nice "${nice}" \
--uid=${id} \
--gid=${id} \
-E HOME=/home/yellowtent \
-E USER=yellowtent \
-E DEBUG=box:* \
-E BOX_ENV=cloudron \
-E NODE_ENV=production \
/home/yellowtent/box/src/taskworker.js "${task_id}" "${logfile}"