Linux命令——systemctl

说明

systemctl 命令用于管理 systemd 系统和服务管理器。它允许用户控制系统服务的启动、停止、重启、启用、禁用等操作,以及查看服务的状态和日志。

语法

1
systemctl [选项] [命令] [单元名称]

选项

  • -t, --type <单元类型>:指定要操作的单元类型,如 service、socket、target 等。
  • -H, --host <主机>:指定要操作的远程主机。
  • -a, --all:显示所有单元。
  • --state <状态>:按状态过滤单元。
  • --failed:仅显示失败的单元。
  • --no-pager:禁止使用分页器显示输出。
  • -l, --full:显示完整的输出信息。
  • -p, --property=<属性>:显示指定属性的值。
  • -q, --quiet:静默模式,减少输出信息。
  • --version:显示版本信息。

简单示例

  1. 启动一个服务:
    1
    
    systemctl start serviceName

实例

  1. 查看所有正在运行的服务:

    1
    
    systemctl list-units --type=service --state=running
  2. 启动一个服务:

    1
    
    systemctl start serviceName
  3. 停止一个服务:

    1
    
    systemctl stop serviceName
  4. 重启一个服务:

    1
    
    systemctl restart serviceName
  5. 查看一个服务的状态:

    1
    
    systemctl status serviceName

这些示例展示了 systemctl 命令在 Linux 中的基本用法和输出格式,以及常用选项的作用。systemctl 是管理 systemd 服务的主要工具,在系统管理和维护中起着重要作用。

systemctl & service

systemctlservice 是 Linux 系统中用于管理系统服务的两个命令,它们在不同版本的 Linux 发行版中扮演着不同的角色。以下是它们之间的主要区别:

systemctl

  • 现代性systemctl 是 systemd 系统和服务管理器的一部分,它在较新的 Linux 发行版中(如 Fedora、Debian、Ubuntu 15.04+、CentOS 7+)中被广泛使用。
  • 功能丰富systemctl 提供了更丰富的功能,包括启动、停止、重启、查看状态、查看日志、管理服务依赖关系等。
  • 并发操作systemctl 支持并发操作,这意味着你可以同时启动、停止或重启多个服务。
  • 目标状态systemctl 允许你设置服务的目标状态(例如,启动、停止、禁用、启用),这会影响服务在系统启动时的行为。
  • 单元文件systemctl 使用单元文件(通常是 .service 文件)来定义服务,这些文件包含了服务的配置信息。
  • 系统状态systemctl 提供了 systemctl status 命令来查看系统的整体状态,包括所有服务的状态。

service

  • 传统性service 是一个较旧的命令,它在许多传统的 Linux 发行版中(如 CentOS 6、Debian Jessie 等)中被使用。
  • 功能有限service 的功能相对有限,主要用于启动、停止和重启服务。
  • 单任务操作service 不支持并发操作,每次只能对一个服务执行一个操作。
  • 配置文件service 使用配置文件(通常是 /etc/init.d/ 目录下的脚本)来管理服务。
  • 系统状态service 没有提供查看系统整体状态的命令,通常需要查看 /var/run/var/log 目录下的文件来获取服务状态。

使用建议

  • 如果你使用的是较新的 Linux 发行版,建议使用 systemctl,因为它提供了更现代和强大的功能。
  • 如果你使用的是较旧的发行版,可能需要使用 service,但随着系统升级,建议迁移到使用 systemctl

在实际使用中,你可以根据自己的需求和系统环境选择合适的命令。如果你不确定应该使用哪个命令,可以查看你的系统默认使用的是 systemd 还是 SysVinit(后者通常使用 service)。在大多数现代系统中,你可以通过运行 ps -p 1 来检查,如果输出显示 systemd:1,那么你的系统使用的是 systemd

0%