У меня есть служба, в которой происходят утечки файловых дескрипторов. Управляется через systemd. Есть ли способ перезапустить эту службу, когда она попадет в определенное количество файловых дескрипторов. Любые указатели будут действительно полезны.
По предложению Ленни (я писал сценарий). Вы можете создать еще один systemd
сервис и таймер для проверки.
Ваш сценарий может выглядеть примерно так
#!/bin/bash
SERVICE="sshd.service"
LIMIT=9
PID=$(systemctl show ${SERVICE} | grep ExecMainPID|cut -d '=' -f2)
NBFD=$(ls -l /proc/${PID}/fd | wc -l)
if [[ ( $NBFD > $LIMIT ) ]] ; then
echo "restarting the service: ${NBFD} > ${LIMIT}"
systemctl restart ${SERVICE}
else
echo "service fd limit ok: ${NBFD} < ${LIMIT}"
fi
Затем создайте service
запуск сценария и timer
запускает сервис каждые X
минут