使用 grep 查找服务

使用 grep 查找服务

我正在尝试查找特定的服务,但对此命令有疑问:

service --status-all | grep worker

为何不起作用service --status-all | grep ...

答案1

这里可能存在两个问题之一。

  1. 要么你没有名为 worker 的进程 - 我没有。尝试 grepkilldm- 你应该会看到一些内容。

  2. 您会看到所有这些。这是因为它提供了许多单独的输出,而不仅仅是 1 个输出。

    每一行都是单独打印的,并且不是stderrstdout您有 2 个选择。

    1. 重定向到一个文件,如下所示:

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

      所有输出将保存在名为的文件中allout.txt。然后你可以 cat 和 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

您可以轻松使用 hack doubleTab

一旦你运行:

sudo service wo 

然后双击Tab此命令将自动完成或列出以wo


如果你的终端支持颜色,你仍然可以使用 grep

例如,这是对我的服务的测试:

 service --status-all | grep vnstat

在此处输入图片描述

答案3

使用:

service --status-all |& grep worker

service --status-all | grep vnstat

相关内容