У меня есть процесс xyz, чей сценарий выгрузки выглядит следующим образом:
description "Run the xyz daemon"
author "xyz"
import SETTINGS
start on (
start-ap-services SETTINGS
)
stop on (
stop-ap-services SETTINGS
) or stopping system-services
respawn
oom score 0
script
. /usr/share/settings.sh
# directory for data persisted between boots
XYZ_DIR="/var/lib/xyz"
mkdir -p "${XYZ_DIR}"
chown -R xyz:xyz "${XYZ_DIR}"
if [ "${SETTING}" = 1 ]
ARGS="$ARGS --enable_stats=true"
fi
# CAP_NET_BIND_SERVICE, CAP_DAC_OVERRIDE.
exec /sbin/minijail0 -p -c 0x0402 -u xyz -g xyz \
-G /usr/bin/xyz ${ARGS}
else
exec sleep inf
fi
end script
# Prevent the job from respawning too quickly.
post-stop exec sleep 3
Теперь из-за проблемы с OOM.xyz убит на основании его оценки OOM, и он появляется заново, как и ожидалось.После нескольких перезапусков xyz пост-стоповый сон прерывается, после чего xyz никогда не возрождается.
Как это можно предотвратить или есть какое-то решение для этого?
Примечание: Имя xyz - это фиктивное имя процесса, используемое только для упоминания моего фактического сомнения.
У меня естьраньше не работал над сценариями выскочки.Любая помощь будет более полезной.