найти сервис, используя grep

Я пытаюсь найти конкретную службу, и у меня есть вопрос по поводу этой команды:

service --status-all | grep worker

Почему service --status-all | grep ... не работает?

1
задан 11 June 2015 в 16:16

3 ответа

Могла быть одна из 2 проблем здесь.

  1. Любой у Вас нет процесса, названного рабочим - я не сделал. Попробуйте к grep за kill или dm - необходимо видеть что-то для них.

  2. Вы видите всех их. Это вызвано тем, что это дает его как большое количество отдельных выводов, не всего 1 вещь.

    Каждая из тех строк печатается отдельно, и это как stderr нет stdout. У Вас есть 2 опции.

    1. Перенаправление в файл, как это:

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

      Весь вывод будет сохранен в названном файле allout.txt. Вы можете затем кошка и grep что:

      cat allout.txt | grep worker
      

      Это может быть объединено к одной команде:

      service --status-all > allout.txt 2>&1 && cat allout.txt | grep worker
      
    2. Перенаправьте stderr к /dev/null, и grep stdout:

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

    Оба из них дают тот же вывод:

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

    и

    tim@Hairy14:~$ service --status-all 2>&1 > /dev/null | grep kill
     [ ? ]  killprocs
    
2
ответ дан 11 June 2015 в 16:16

Можно легко использовать взлом двойная вкладка

, как только Вы работаете:

sudo service wo 

тогда двойная Вкладка это было бы automcplete или перечислять все сервисы, запускающиеся с wo

<час>

, можно все еще использовать grep, если терминальная поддержка окрашивает

, например, вот тест для моих сервисов:

 service --status-all | grep vnstat

enter image description here

0
ответ дан 11 June 2015 в 16:16

Использование:

service --status-all |& grep worker

service --status-all | grep vnstat
0
ответ дан 17 April 2019 в 22:22

Другие вопросы по тегам:

Похожие вопросы: