菜鸟科技网

如何查看电脑服务命令?

Windows 系统

在 Windows 中,服务通常被称为“Windows 服务”,它们是在后台运行的可执行程序,没有用户界面。

如何查看电脑服务命令?-图1
(图片来源网络,侵删)

方法 1:使用 sc 命令(功能最强大,推荐)

sc (Service Control) 是一个功能强大的命令行工具,专门用于与服务控制管理器进行交互。

基本语法: sc [query] [servicename]

常用命令示例:

  1. 查看所有服务列表

    如何查看电脑服务命令?-图2
    (图片来源网络,侵删)
    sc query state= all
    • state= all 会显示所有状态(运行中、已停止等)的服务,如果省略,默认只显示主要服务。
  2. 查看特定服务的详细信息YourServiceName 替换为你想查看的服务名(不区分大小写)。

    sc query YourServiceName
    • 示例: 查看名为 "Spooler" 的打印后台处理程序服务。
      sc query Spooler
  3. 查看服务的状态(运行中/已停止)

    sc queryex YourServiceName
    • queryex 会显示更详细的信息,包括服务的进程 ID (PID),这对于排查问题非常有用。
  4. 查看服务的依赖关系

    sc qc YourServiceName
    • qc (Query Configuration) 会显示服务的配置信息,包括它依赖哪些服务以及哪些服务依赖它。

如何获取服务名? 服务名通常不是我们在服务管理界面看到的“显示名称”,你可以通过以下方式找到对应的服务名:

如何查看电脑服务命令?-图3
(图片来源网络,侵删)
  • 在服务管理界面(services.msc)中,右键点击服务 -> “属性”,在“常规”选项卡下可以看到“服务名称”。
  • 使用 sc query 命令查看列表,列表中会显示 SERVICE_NAME

方法 2:使用 tasklist 命令(通过进程查看)

如果你想查看某个服务对应的进程,可以使用 tasklist

基本语法: tasklist /svc

常用命令示例:

  1. 查看所有进程及其关联的服务

    tasklist /svc

    这会列出所有正在运行的进程,并在 "Services" 列下显示它们关联的服务名,你可以通过这个命令反向查找某个服务对应的进程 ID。

  2. 查找特定服务对应的进程

    tasklist /fi "SERVICES eq YourServiceName"
    • 示例: 查找 "Themes" 服务对应的进程。
      tasklist /fi "SERVICES eq Themes"

方法 3:使用 PowerShell(现代 Windows 的首选)

PowerShell 提供了比 sc 更强大、更易于理解的命令来管理服务。

基本语法: Get-Service [-Name <服务名>]

常用命令示例:

  1. 获取所有服务

    Get-Service

    默认会显示服务的 "Status"(状态)和 "Name"(名称)。

  2. 获取特定服务

    Get-Service -Name Spooler
    # 或者使用通配符
    Get-Service -Name *spool*
  3. 获取格式化的列表(更易读)

    Get-Service | Format-Table -AutoSize
  4. 获取服务的详细配置信息(类似 sc qc

    Get-Service -Name Spooler | Select-Object *
    • 这会显示该服务的所有属性,包括 DependentServices(依赖服务)、RequiredServices(所需服务)等。
  5. 只显示正在运行的服务

    Get-Service | Where-Object {$_.Status -eq 'Running'}

Linux / macOS 系统

在 Linux 和 macOS 中,服务通常被称为 "daemons"(守护进程),现代系统主要使用 systemd,但一些旧系统可能仍使用 SysVinitUpstart

方法 1:使用 systemctl 命令(现代 Linux 发行版主流)

systemctlsystemd 的核心命令,用于控制系统和服务。

基本语法: systemctl [status|list-units|list-dependencies] [unit-name]

常用命令示例:

  1. 查看所有已加载的服务单元状态

    systemctl list-units --type=service --all
    • --type=service 只显示服务。
    • --all (-a) 会显示所有服务,包括未加载的。
    • 状态列显示 active (running)inactive (dead) 等。
  2. 查看特定服务的状态

    systemctl status nginx.service  # .service 后缀可省略

    这个命令会显示服务的详细状态、主进程 ID、是否开机自启以及最新的日志条目,非常直观。

  3. 查看服务的依赖关系

    systemctl list-dependencies nginx.service
  4. 查看所有已启用(开机自启)的服务

    systemctl list-unit-files --state=enabled
  5. 查看所有正在运行的服务

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

方法 2:使用 service 命令(兼容性更好)

service 命令是 SysVinitUpstart 遗留下来的工具,但 systemd 也对其提供了兼容,它是一个简单的“包装器”命令。

基本语法: service <服务名> <操作>

常用命令示例:

  1. 查看服务状态

    service nginx status
  2. 启动服务

    service nginx start
  3. 停止服务

    service nginx stop
  4. 重启服务

    service nginx restart

方法 3:使用 psgrep 命令(通过进程查看)

如果你想查看哪些进程正在运行,可以使用 ps 命令。

基本语法: ps aux | grep <关键词>

常用命令示例:

  1. 查找所有名为 "nginx" 的进程
    ps aux | grep nginx
    • a 显示所有进程
    • u 以用户为中心显示
    • x 显示没有控制终端的进程
    • grep 用于过滤结果,你会看到 grep 命令自身的结果,可以忽略。

总结对比

系统/环境 推荐命令 主要用途 示例
Windows sc query 功能最全面的命令行工具,适合脚本 sc query Spooler
powershell 现代化、功能强大,易于处理结果 Get-Service -Name Spooler
tasklist /svc 通过进程查找关联的服务 tasklist /svc
Linux/macOS systemctl 现代系统首选,功能全面,管理服务生命周期 systemctl status nginx
service 兼容性好,简单直接,用于启停服务 service nginx status
ps aux \| grep 查看正在运行的进程,快速排查 ps aux \| grep nginx

希望这份详细的总结能帮助您在不同系统中轻松查看和管理服务!

分享:
扫描分享到社交APP
上一篇
下一篇