systemd:当达到文件描述符限制时重新启动服务

systemd:当达到文件描述符限制时重新启动服务

我有一个服务正在泄漏文件描述符。它通过 systemd 进行管理。当文件描述符达到特定数量时,我是否可以重新启动该服务。任何指示都会非常有用。

答案1

正如 Lenniey 所建议的(我正在编写脚本)。您可以创建另一个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

相关内容