Monitor de processo fácil, mas pronto para produção, em Linux / Unix [fechado]


8

Estou procurando um monitor de processo simples para minha conta em um VPS popular. Eu amei Supervisor e Monit, mas eles parecem um exagero para mim.

eu quero algo

  1. que é executado como um daemon (para que minha conta VPS possa iniciá-lo na inicialização e também "iniciar" pelo cron, caso o próprio monitor seja desativado)
  2. que monitora gerando coisas como subprocesso (como Supervisor) ou executando um comando de pesquisa que retorna verdadeiro ou falso (como uma instrução BASH if)
  3. ambos fácil de usar (necessidade configuração mínima) e estável de produção (de alguma forma alguns software parece satisfazer ambas as demandas)
  4. Adequado em um VPS gerenciado - executado no modo de usuário, uso mínimo de memória

Respostas:


2

Você está procurando o programa daemontools . (Se é isso que você quis dizer com monitor "Supervisor", fique à vontade para ignorar o restante da minha resposta.)

daemontools é uma coleção de ferramentas para gerenciar serviços UNIX.

supervisionar monitora um serviço. Inicia o serviço e reinicia o serviço se morrer. A configuração de um novo serviço é fácil: todas as necessidades de supervisão são um diretório com um script de execução que executa o serviço.

O multilog salva mensagens de erro em um ou mais logs. Opcionalmente, marca o timestamp de cada linha e, para cada log, inclui ou exclui linhas que correspondem aos padrões especificados. Ele gira automaticamente os logs para limitar a quantidade de espaço em disco usado. Se o disco ficar cheio, ele fará uma pausa e tentará novamente, sem perder nenhum dado.

É simples, flexível e muito poderoso. A idéia básica é que, para cada serviço que você deseja executar, o daemontools inicie um processo filho (chamado supervise) que inicie seu serviço. supervise configura as variáveis ​​de ambiente do serviço e uid / gid e mantém o padrão do serviço dentro e fora do padrão aberto para que ele possa enviar sinais. O serviço não precisa se daemonizar e você não precisa gerenciar arquivos pid. O serviço principal não requer raiz para executar, e você pode colocar os diretórios dos serviços monitorados em qualquer lugar.


runitseria uma alternativa aos daemontools. Também é muito simples e de baixo nível. Basicamente, tudo o que você precisa para executar um processo é um arquivo contendo algum comando exec, por exemplo, exec sleep 300você cria um link simbólico a partir do diretório que contém o script de execução /etc/service/namee pronto.
Tombart

1

A resposta simples é que você já possui um - Todo sistema Unix possui - init e / etc / inittab.

O trabalho do init é gerar os processos listados no inittab, monitorá-los e reiniciá-los se eles saírem.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.