Я пытаюсь найти конкретную службу, и у меня есть вопрос по поводу этой команды:
service --status-all | grep worker
Почему service --status-all | grep ...
не работает?
Могла быть одна из 2 проблем здесь.
Любой у Вас нет процесса, названного рабочим - я не сделал. Попробуйте к grep за kill
или dm
- необходимо видеть что-то для них.
Вы видите всех их. Это вызвано тем, что это дает его как большое количество отдельных выводов, не всего 1 вещь.
Каждая из тех строк печатается отдельно, и это как stderr
нет stdout
. У Вас есть 2 опции.
Перенаправление в файл, как это:
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
Перенаправьте 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
Можно легко использовать взлом двойная вкладка
, как только Вы работаете:
sudo service wo
тогда двойная Вкладка это было бы automcplete или перечислять все сервисы, запускающиеся с wo
, можно все еще использовать grep, если терминальная поддержка окрашивает
, например, вот тест для моих сервисов:
service --status-all | grep vnstat
Использование:
service --status-all |& grep worker
service --status-all | grep vnstat