📜  如何知道 ubuntu 中的工作服务 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:24:52.696000             🧑  作者: Mango

如何知道 Ubuntu 中的工作服务 - Shell/Bash

在 Ubuntu 操作系统中,有很多的服务在后台运行着。有时候,我们需要知道这些服务的状态和信息,以便进行系统管理和调试。本文将介绍如何通过 shell/bash 命令行方式,查询 Ubuntu 中的工作服务。

1. 查看服务状态

要查看 Ubuntu 中的服务状态,我们可以使用 systemctl 命令。该命令会列出所有正在运行的服务并显示它们的状态。以下是示例命令:

systemctl status

该命令输出的结果将包含所有正在运行的服务及其状态,如下所示:

● systemd-journald.service - Journal Service
     Loaded: loaded (/lib/systemd/system/systemd-journald.service; static; vendor preset: enabled)
     Active: active (running) since Mon 2021-10-18 09:27:03 UTC; 36s ago
       Docs: man:systemd-journald.service(8)
             man:journald.conf(5)
   Main PID: 930 (systemd-journal)
     Status: "Processing requests..."
      Tasks: 1 (limit: 3803)
     Memory: 7.6M
     CGroup: /system.slice/systemd-journald.service
             └─930 /lib/systemd/systemd-journald

Oct 18 09:27:03 ubuntu systemd-journald[930]: Received request to flush runtime journal from PID 1
Oct 18 09:27:03 ubuntu systemd-journald[930]: Flush runtime journal successfully
...

其中,服务的状态就显示在 Active: 一行之中。常见的状态包括:

  • ● active (running):表示服务正在运行中。
  • ● inactive (dead):表示服务已经停止运行。
  • ● enabled:表示开机自动启动的服务。
  • ● disabled:表示开机自动不启动的服务。
2. 列出所有服务

如果我们想查看系统中所有服务及其状态,可以使用 systemctl list-units 命令。该命令将列出所有服务及其状态。

systemctl list-units --type=service

输出结果中包含了所有正在运行或已经停止的服务及其状态。示例命令输出如下:

...
  open-ssh.service              loaded active running   OpenBSD Secure Shell server
  php.service                   loaded active running   LSB: start and stop for the PHP FastCGI Process Manager
  postfix.service               loaded active running   Postfix Mail Transport Agent
  redis-server.service          loaded active running   Advanced key-value store
  rpcbind.service               loaded active running   RPC bind portmap service
  rpc-gssd.service              loaded active running   RPC security service for NFS client and server
  rpc-statd-notify.service      loaded inactive dead      Notify NFS peers of a restart
  rpc-statd.service             loaded active running   NFS status monitor for NFSv2/3 locking.
  rsyslog.service               loaded active running   System Logging Service
...
3. 列出所有启动了的服务

如果只想查看所有启用了的服务,可以使用以下命令:

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

该命令将列出所有开关机自动启用的服务。示例命令输出如下:

...
nginx.service                         enabled        
ondemand.service                      enabled        
php-fpm.service                       enabled        
redis-server.service                  enabled        
rsyslog.service                       enabled        
saslauthd.service                     enabled        
ssh.service                           enabled        
timers.target                         enabled        
tlp.service                           enabled        
ufw.service                           enabled        
unattended-upgrades.service           enabled        
user@999.service                      enabled        
zabbix-agent2.service                 enabled        
4. 启动、停止以及重启服务

要启动、停止或重启某个服务,可以使用以下命令:

# 启动服务
sudo systemctl start <service-name>

# 停止服务
sudo systemctl stop <service-name>

# 重启服务
sudo systemctl restart <service-name>

以上命令中,<service-name> 为服务的名称。例如,启动 nginx 服务的命令:

sudo systemctl start nginx
5. 开机启动服务

要开机启动某个服务,可以使用以下命令:

sudo systemctl enable <service-name>

例如,设置 nginx 服务为开机启动的命令:

sudo systemctl enable nginx

如果要禁止某个服务的开机启动,可以使用以下命令:

sudo systemctl disable <service-name>
总结

通过本文介绍的方法,您可以方便地查询 Ubuntu 中的工作服务,了解服务状态和配置服务开关机自启动。这将有助于您进行系统管理和调试。