encontra serviço usando grep

1

Estou tentando encontrar um serviço específico e tenho dúvidas sobre esse comando:

service --status-all | grep worker

Por que service --status-all | grep ... não funcionou?

    
por Mazeryt 11.06.2015 / 13:57

3 respostas

2

Pode haver um dos dois problemas aqui.

  1. Ou você não tem nenhum processo chamado trabalhador - eu não fiz. Tente encontrar kill ou dm - você deve ver algo para eles.

  2. Você está vendo todos eles. Isso é porque ele está dando várias saídas individuais, não apenas uma coisa.

    Cada uma dessas linhas é impressa separadamente e é como stderr não stdout . Você tem 2 opções.

    1. Redirecionar para um arquivo assim:

      service --status-all > allout.txt 2>&1
      

      Toda a saída será salva em um arquivo chamado allout.txt . Você pode então cat e grep que:

      cat allout.txt | grep worker
      

      Isso pode ser combinado em um comando:

      service --status-all > allout.txt 2>&1 && cat allout.txt | grep worker
      
    2. Redirecionar stderr para /dev/null e grep stdout :

      service --status-all 2>&1 > /dev/null | grep worker
      

    Ambos fornecem o mesmo resultado:

    tim@Hairy14:~$ service --status-all > allout.txt 2>&1 && cat allout.txt | grep kill
     [ ? ]  killprocs
    

    e

    tim@Hairy14:~$ service --status-all 2>&1 > /dev/null | grep kill
     [ ? ]  killprocs
    
por Tim 11.06.2015 / 14:05
2

Você pode facilmente usar o hack duplo Tab

depois de executar:

sudo service wo 

, então, o duplo Tab irá autompletar ou listar todos os serviços iniciados com wo

você ainda pode usar o grep se o seu terminal suportar cores

por exemplo, aqui está um teste para os meus serviços:

 service --status-all | grep vnstat

    
por Maythux 11.06.2015 / 14:04
0

Uso:

service --status-all |& grep worker

service --status-all | grep vnstat
    
por Eduardo Daniel Ibarra 26.07.2018 / 14:23