如何使用命令行列出Linux中所有正在运行的服务

与所有其他操作系统一样,基于Linux的操作系统具有在计算机运行时运行的进程和服务。 它们的范围从各种操作系统服务到命令行,再到各种旨在保持系统平稳运行的服务/守护程序。 从支持服务到旨在处理输入,提高性能,卸载资源等的特殊服务,大多数服务对于流程的正常运行都是至关重要的。流程也是计算机基本功能的骨干,因此为每个人拥有资源很重要。

但是,如果不考虑安全措施,服务可能会在您不知情的情况下运行,耗尽系统资源,甚至使您的系统易受攻击。 由于存在这些可能的情况,因此最好知道如何检查和处理此类情况,并且能够随时跟踪计算机上正在运行的进程和服务。

在本文中,我们将介绍几种列出/显示Linux服务器或计算机上所有正在运行的服务和进程的方法,并介绍一些有用的命令来帮助您查找和管理这些进程和服务。

“服务”命令行工具

几乎每个Linux发行版都预安装了service命令。 尽管主要目的是启动和停止脚本以及创建进程,但是“服务”也可以用于随时查看正在运行或停止的服务。 使用一个简单的命令,我们将获得完整的服务列表:

service --status-all

运行此命令时,将显示相同的输出:

[ + ] apache-htcacheclean
[ + ] apache2
[ + ] apparmor
[ + ] bind9
[ - ] bluetooth
[ - ] bootmisc.sh
[ - ] cgmanager
[ - ] cgproxy
[ - ] checkfs.sh
[ - ] checkroot-bootclean.sh
[ - ] checkroot.sh
(continued)

如何从命令行列出Linux中所有正在运行的服务

如您所见,服务列表作为输出提供,在服务名称的左侧带有一个字符。 “ +”表示服务正在运行,“-”表示服务已停止,“?” 表示状态目前未知。 与搜索工具(例如“ grep”)结合使用时,很容易找到正在运行的特定服务。 然后,您可以通过输入特定过程的状态命令来基于该过程检查状态:

service <service name> status

然后,它将输出与该特定服务相关的一堆信息,包括进程的位置,服务是否正在运行,甚至是服务中日志文件的最后几行。

聚苯乙烯

PS是一个预安装的实用程序,用于显示信息和有关进程的信息。 这是一个简单,快速的工具,旨在快速获得结果而无需大惊小怪。 使用一个简单的命令,我们可以列出当前正在运行的进程的详细列表:

ps-辅助

您可以将其与less命令结合使用,以进一步提高可读性。 在执行此命令时,我们将获得有关每个正在运行的进程的详细信息。 您还可以使用grep命令将结果缩小到特定的进程名称,进程ID等。

命令行工具“顶部”

“顶部”是一个内置工具,旨在提供您计算机上当前正在运行的所有进程和服务的概述。 它包含在基于Debian和RedHat的发行版中,并提供了许多功能来帮助您了解服务器上正在发生的事情。 您可以从顶部开始,只需在命令行上绘制顶部即可。 它应该是这样的:

top - 03:29:24 up 53 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 58 total, 1 running, 57 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2097152 total, 1025376 free, 504424 used, 567352 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1485816 avail Mem
PID  USER PR NI VIRT   RES  SHR S %CPU %MEM TIME+  COMMAND
1073 root 20 0  128404 1672  888 S 0.3 0.1 0:00.45 screen
3160 root 20 0  157900 2156 1516 R 0.3 0.1 0:00.06 top
   1 root 20 0  129484 3716 2412 S 0.0 0.2 0:03.03 systemd
   2 root 20 0       0    0    0 S 0.0 0.0 0:00.00 kthreadd/2306
   3 root 20 0       0    0    0 S 0.0 0.0 0:00.00 khelper/2306
  57 root 20 0   39176 2816 2492 S 0.0 0.1 0:00.53 systemd-journal
  63 root 20 0   42624 1740 1292 S 0.0 0.1 0:00.01 systemd-udevd
(continued)

如何从命令行列出Linux中所有正在运行的服务看起来可能有些混乱,但是大多数此类信息都非常有帮助。 例如,我们可以看到系统已经运行了多长时间,平均负载,有多少用户登录,有多少个进程(任务)正在运行,正在休眠等,以及有关我们拥有的内存量和在服务器上可用。 顶部进一步详细介绍了特定于流程的级别。 每列显示一个特定值,该值与正在运行的进程相关。 我们可以看到谁拥有一个进程,正在使用多少内存,使用了多少处理器,该进程唯一的命令名称和进程ID,并且如果同一进程中有多个进程,则可以帮助我们识别该进程。 使用所有这些信息,我们可以确切地看到每个进程正在做什么以及每个进程正在使用多少资源。

HTOP

就其核心特性和功能而言,Htop与“ top”非常相似。 它通常不包括在默认的操作系统安装中,但是对于大多数(如果不是全部)Linux发行版,可以通过其预安装的软件存储库使用它。 像top一样,htop允许用户查看有关每个进程的详细信息以及关注系统本身。 但是,htop允许对显示的信息进行更精确的控制,并且还提供了一组可应用于流程的实用程序。

例如,通过htop,您可以调整流程的细微程度(优先级),使用不同的强度级别将其杀死,等等。还有一种分类功能,可以使您仅查看对您重要的信息变得更加容易。 可以在一个空格中选择过程,从而更容易跟踪和跟踪特定过程(或多个过程,因为您一次可以选择多个)。 借助搜索功能,您甚至可以更轻松地检查和关注特定过程。 Htop甚至具有一个表示各种系统资源的条形图,使您可以轻松查看分配了多少CPU或RAM。

以下是htop的示例:

1  [                                                                0.0%] Tasks: 35, 113 thr; 1 running
2  [||                                                              1.3%] Load average: 0.01 0.05 0.01
Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 799M/2.00G] Uptime: 4 days, 22:53:28
Swp[                                                               0K/0K]

  PID   USER  PRI NI   VIRT  RES  SHR S CPU%  MEM%   TIME+  Command
 9357  mysql   20  0  1625M 196M 1944 S 0.7    9.6  4:54.66 /usr/sbin/mysqld
26708   root   20  0  26520 4092 1464 R 0.7    0.2  0:00.66 htop
    1   root   20  0 129484 3716 2412 S 0.0    0.2  0:03.03 systemd
(continued)

借助顶部的条形图,您可以一目了然地查看系统的工作方式,以及位于其下方的可自定义的详细信息。

如何从命令行列出Linux中所有正在运行的服务使用这些工具中的任何一个,您都可以轻松找到有关您的服务和流程的准确信息。

Sidebar