shell-script

Utilizando o pgrep e ps aux em Função.

Função para rodar um comando e verificar caso ele não esteja sendo executado o comando  pgrep e ps aux

Esta função serve para executar um comando quando ele não estiver rodando no sistema, com uma verificação para comprovar o seu estado de online ou off-line.

Existem várias maneiras de fazer isso. Uma delas é utilizando o pgrep:

pgrep

pgrep gedit

Se o gedit estiver rodando, um número será retornado.
17805
Esse número é o ID do processo (PID). Esse número obviamente muda.
Combinando isso em um Shell Script:

#!/bin/bash

# Verifica se o gedit está sendo executado
if 
  pgrep "gedit" > /dev/null
  then 
  echo "Executando"
    else 
    echo "Parado"
fi

Para garantir que a pesquisa seja pelo nome exato do processo, utilize a opção -x, exemplo:

pgrep ged

Retornaria qualquer processo que tenha ged no nome.
Por sua vez:

pgrep -x gedit

Retornaria apenas os processos que sejam exatamente gedit.

Iniciando um processo uma única vez, ao abrir uma sessão no terminal. Coloque no final do arquivo ~/.bashrc:

pid=$(pgrep -x redshift)
if [ "$pid" = "" ]
  then 
  redshift &
fi

ps aux

Uma outra maneira de realizar esse procedimento seria com o auxilio do comando o ps aux ele irá executar uma busca nos processos que estão sendo executados. um exemplo do comando seria:

ps aux |grep onedrive

o resultado seria:

lucas 32686 0.0 0.0 14248 984 pts/2 S+ 20:35 0:00 grep --color=auto onedrive

Você pode criar um shell script que retorne quantos processos estão rodando. É claro que o else pode ser suprimido.

#!/bin/sh
# Verificacao se servico esta online
qtde=$(ps aux | grep "mysqld" | wc -l)
if test "$qtde" = "1"
  then 
  echo "MySQL is offline"; 
  echo "Starting..."; 
  /etc/init.d/mysql stop; 
  /etc/init.d/mysql start;
    else 
    echo "MySQLd is online." ; 
    echo "Nothing to do.";
fi

Links Relacionados:
phpMyAdmin

Sistemas Operacionais
GNU/Linux, BSD, Unix-like e Software Livre

By Lucas Rodrigues Monteiro

Bacharel em Sistemas da Informação, Certificado MCTS 70-680 / MOS, Trabalho como Administrador de Redes, Firewall e Servidores Windows e Linux! Minhas atividades favoritas são: Caminhar, Fazer Trilhas, Natureza, Insetos e claro ler sobre Tecnologia.

Deixe uma resposta

Translate »