Как проверить, запущен ли демон? Это зависит. У некоторых демонов есть файл с идентификатором процесса, скажем, /var/run/foo.pid
. Примером этого является /var/run/crond.pid
.
$ cat /var/run/crond.pid
432
Если процесс запущен, у него есть каталог в / proc
:
$ ls /proc/$(cat /var/run/crond.pid)
Поэтому, если каталог в / proc не существует, мы можем выполнить перезапуск. Если qBittorrent имеет этот pid-файл, вы можете сделать это:
# cat <<EOF >/etc/cron.d/restart-qbittorrent-nox
*/5 * * * * /bin/test -e /proc/$(cat /var/run/qbittorrent-nox.pid)/cmdline || service qbittorrent-nox start
EOF
Если у вас нет файла в / var / run
, вы должны использовать ps ax | grep qBittorrent
, чтобы найти процесс.
Но лучшим решением было бы выяснить причину сбоя процесса ...
Утечки памяти могут быть очень неприятными, и их очень сложно отслеживать в крупномасштабной системе. Я бы попытался скопировать весь сервер в тестовую среду, запуская службы по очереди, чтобы изолировать проблему.
После того, как вы проверили каждую из служб (процессы пользовательского режима) отдельно и по отдельности и по-прежнему не можете найти источник утечки, вам следует проверить ядро. Работа с ядром требует времени и опытных рук, я бы рекомендовал проконсультироваться со специалистом по ядру.
Другая возможность - наличие вредоносного ПО. Совсем другое дело - бороться с вредоносными программами.
Иногда нет ярлыков: \