[Unit]
Description=Box
After=mysql.service nginx.service
; As cloudron-resize-fs is a one-shot, the Wants= automatically ensures that the service *finishes*
Wants=cloudron-resize-fs.service

[Install]
WantedBy=multi-user.target

[Service]
Type=idle
WorkingDirectory=/home/yellowtent/box
User=yellowtent
Group=yellowtent
Restart=always
ExecStart=/home/yellowtent/box/box.js
ExecReload=/bin/kill -HUP $MAINPID
; we run commands like df which will parse properly only with correct locale
Environment="HOME=/home/yellowtent" "USER=yellowtent" "BOX_ENV=cloudron" "NODE_ENV=production" "LC_ALL=C"
; this sends the main process SIGTERM and then if anything lingers to the control-group . this is also the case if the main process crashes.
; the box code handles SIGTERM and cleanups the tasks
KillMode=mixed
KillSignal=SIGTERM
TimeoutStopSec=5s
SendSIGKILL=yes
; Do not kill this process on OOM. Children inherit this score. Do not set it to -1000 so that MemoryMax can keep working
OOMScoreAdjust=-999
MemoryMax=400M
StartLimitInterval=1
StartLimitBurst=60

