「四川联想代理」如何在Linux联想服务器系统中列出Systemd系统服务

成都联想服务器总代理 134 2023-05-29 https://www.lenovocd.com/ 成都联想服务器总代理

虽然systemd解决了很多服务器系统管理的问题,但有时也会让人感到困惑。四川联想服务器代理即使是列出systemd服务这样一个简单的任务,也会让你陷入思考。

四川联想总代理

在本文中,我将向你展示如何列出systemd服务。我还会解释输出结果,以便你更容易理解服务的不同状态。希望你对systemd有一定的了解,但即使你不了解,也应该没问题。

1、如何在systemd中列出活动服务

systemd服务是由systemctl命令管理的,如果你在运行systemctl时没有任何参数,它就会调用默认的list-units子命令,并列出各种类型的systemd单元,如service、socket、target等。

但是您的目的是列出服务,因此您可以使用以下--type标志来指定单元类型:

systemctl --type=service

您是否注意到我没有指定list-units子命令,因为它是默认命令?如果要遵守约定,也可以指定。我更喜欢这种方式,在本教程的其余部分中,我将遵循这一约定。

systemctl list-units --type=service

在两种情况下,输出都是相同的。默认情况下,此命令仅按字母顺序显示已加载和活动的服务:

让我解释一下输出:

UNIT:系统单位的名称。

LOAD:系统配置文件是否已解析单元配置文件。

ACTIVE:设备的高级状态。

SUB:设备的低级状态。活动单元可以处于运行状态或退出状态。该值取决于服务类型。

如您所见,您可以列出Linux系统上已加载的服务。但是活动的systemd服务可以正在运行或可以退出(成功运行之后)。

2、列出所有正在运行的systemd服务

活动状态还可以具有运行,退出等子状态。你可以使用相同的--state标志与子状态。

要列出正在运行的systemd服务,请使用如下--state=running标记:

systemctl list-units --type=service --state=running

这是我的系统的示例输出,显示了一些正在运行的systemd服务:

3、列出所有已加载的systemd服务,包括不活动的服务

缺省情况下,systemctl命令仅显示已加载和活动的单元。

如果要列出所有已加载的服务(包括非活动的服务),请使用--all标志:

systemctl list-units --all --type=service

现在,您甚至可以看到不活动的服务:

4、列出所有非活动的systemd服务

如果你想看到的只是不活动的服务,你可以结合各种标志喜欢--all和--state这样的:

systemctl list-units --all --type=service --state=inactive

如您在输出中看到的,它显示所有不活动的systemd服务:

5、列出所有已安装的systemd服务(即使未加载)

每个系统单元(无论是服务单元,套接字还是任何其他单元)都具有一个单元文件,该文件

systemctl list-unit-files --type=service

这是您应该看到的:

解释每种状态类型将太冗长,不在本文讨论范围之内。

6、列出将在每次引导时自动运行的所有系统服务

要查看每次系统引导时将自动运行的所有systemd服务,请使用以下命令:

systemctl list-unit-files --type=service --state=enabled

您是否对启用状态感到困惑?那很正常 许多新用户将已启用的系统服务与正在运行的服务混淆了。

但是,已启用的systemd服务意味着该服务将在系统启动时自动激活。

您是否注意到厂商预设?在前面的示例中也存在此问题。

供应商预设定义了安装程序时systemd单元的自动行为。

假设您安装了新程序XYZ。此XYZ具有已启用供应商预设的名为xyz.service的系统服务。这意味着在安装程序之后,当您引导系统时,此xyz.service将在引导时自动激活。

如果供应商预设被禁用,则必须手动将其设置为启用。启用后,它将在每次引导时自动启动。

sudo systemd enable xyz.service

7、显示特定系统服务的状态

到目前为止,您已经看到了各种列出服务的方式。但是没有什么可以集中在单一服务上。

您可以使用statussystemctl 的子命令获取有关systemd服务的详细信息。制表符完成功能与此命令一起使用。

systemctl status

这是网络管理器服务的示例:

您会看到它提供了许多有用的信息,例如服务的状态,服务的手册页,消耗的内存,进程ID等。它还显示了该服务的最近几条日志记录。

如果要在Shell脚本中检查服务是否处于活动状态,则可以使用is-active子命令。输出为0表示有效。

systemctl is-active application.service

同样,如果要检查是否已启用服务(设置为在启动时自动启动),则可以使用is-enabled子命令。对于已启用的服务,输出为0。

systemctl is-enabled application.service

至此,希望您现在对列出系统服务有了更好的了解。

成都联想代理www.lenovocd.com


【公司名称】成都鸿盛广达科技有限公司

【代理级别】成都联想服务器总代理

【销售经理】成都鸿盛广达科技有限公司

【联系方式】座机:028-85952921 手机:13981931555

【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼