Registra se o processo está ativo ou não

1

Estou tentando criar uma página da Web que mostre se um processo está ativo ou não, mas como posso automatizar a verificação do processo e gravá-la em um arquivo .txt ou .html para poder exibi-lo em meu site?

    
por Joeri 12.01.2018 / 11:24

1 resposta

1

Você pode usar, por exemplo, pgrep para procurar processos com um nome específico.

Como exemplo, posso ver se o music player do Rhythmbox está sendo executado, digitando:

$ pgrep rhythmbox
827

Se algum número for impresso (e o status de saída for 0), isso significa que ele encontrou um processo de correspondência. Caso contrário, a saída estará vazia e você terá um status de saída diferente de zero.

Agora podemos simplesmente executar isso repetidamente em um loop infinito. Para economizar recursos, esperamos um segundo entre cada iteração. Dependendo se um processo correspondente for encontrado ou não, esse pequeno script abaixo gravará yes ou no em um arquivo status.txt .

#!/bin/bash
while sleep 1 ; do 
    if pgrep rhythmbox &>/dev/null ; then 
        echo "yes" > status.txt
    else 
        echo "no" > status.txt
    fi
done 

Você também pode fazer algo mais útil dentro do loop, por exemplo, comutação de links simbólicos entre dois documentos html pré-fabricados. Suponha que temos running.html e stopped.html e queremos que o código correto seja vinculado como status.html , que então poderia ser servido pelo seu servidor web. Poderia ser assim:

#!/bin/bash
while sleep 1 ; do 
    if pgrep rhythmbox &>/dev/null ; then 
        ln -s running.html status.html
    else 
        ln -s stopped.html status.html
    fi
done 

No entanto, eu não testei como um servidor web pode reagir nesta troca de link, também é possível que ele armazene coisas em cache e as alterações não sejam ativadas imediatamente, não tem idéia. Você tem que experimentá-lo.

    
por Byte Commander 12.01.2018 / 11:46