开发者

Linux服务器查看启动服务的5种方式总结

开发者 https://www.devze.com 2025-09-24 10:34 出处:网络 作者: 刘一说
目录1. 使用systemctl命令(推荐,适用于使用 systemd 的系统)查看所有已激活(运行中)的服务查看所有已启用(开机自启)的服务查看所有服务的综合状态(包括运行和未运行)2. 使用service命令(传统SysVinit系统,
目录
  • 1. 使用systemctl命令(推荐,适用于使用 systemd 的系统)
    • 查看所有已激活(运行中)的服务
    • 查看所有已启用(开机自启)的服务
    • 查看所有服务的综合状态(包括运行和未运行)
  • 2. 使用service命令(传统SysVinit系统,或兼容模式)
    • 查看所有服务状态
    • 查看特定服务http://www.devze.com状态
  • 3. 检查监听的网络端口(间接查看网络编程客栈服务)
    • 4. 查看开机自启服务(SysVinit风格)
      • 5. 查看进程(最底层方法)
        • 总结与建议

          1. 使用systemctl命令(推荐,适用于使用 systemd 的系统)

          现代linux发行版大多使用 systemd 作为初始化系统和服务管理器。

          查看所有已激活(运行中)的服务

          systemctl list-units --type=servjsice --state=active
          

          或简写:

          systemctl --type=service --state=active
          

          查看所有已启用(开机自启)的服务

          systemctl list-unit-files --t编程ype=service --state=enabled
          

          查看所有服务的综合状态(包括运行和未运行)

          systemctl list-units --type=service
          

          说明

          • active 状态表示服务当前正在运行。
          • enabled 表示服务设置为开机自启动。
          • loaded 表示服务配置已加载。

          2. 使用service命令(传统SysVinit系统,或兼容模式)

          虽然较老,但在许多系统上仍然可用。

          查看所有服务状态

          service --status-all
          
          • [ + ] 表示服务正在运行。
          • [ - ] 表示服务未运行。
          • [ ? ] 表示状态未知。

          查看特定服务状态

          service <service_name> status
          # 例如:
          service sshd status
          service nginx status
          

          3. 检查监听的网络端口(间接查看网络服务)

          许多服务会监听特定的端口。通过查看监听的端口,可以推断哪些网络服务已启动。

          # 使用 netstat (需安装 net-tools)
          netstat -tuln
          
          # 或使用 ss (更现代,推荐)
          ss -tuln
          
          • -t:显示TCP端口
          • -u:显示UDP端口
          • -l:仅显示监听状态的端口
          • -n:以数字形式显示端口号和IP地址(不解析名称)

          示例输出解读

          tcp    0    0 0.0.0.0:22    0.0.0.0:*    LISTEN    # 表示SSH服务在运行
          tcp    0    0 0.0.0.0:80    0.0.0.0:*    LISTEN    # 表示Web服务(如Nginx/Apache)在运行
          

          4. 查看开机自启服务(SysVinit风格)

          对于仍使用SysVinit的系统,或查看传统服务的开机启动项:

          # Centos/RHEL
          chkconfig --list
          
          # Ubuntu/Debian
          ls /etc/rc*.d/S*
          

          5. 查看进程(最底层方法)

          直接查看正在运行的进程,可以找到服务相关的进程。

          # 查看所有进程
          ps aux
          
          # 或结合grep过滤特定服务
          ps aux | grep nginx
          ps aux | grep mysql
          

          总结与建议

          方法优点推荐场景
          systemctl list-units --type=service --state=active最准确、最标准首选方法,查看当前运行的服务
          systemctl list-unit-files --type=service --state=enabled查看开机自启服务检查哪些服务会随系统启动
          ss -tuln查看网络服务监听情况快速判断Web、数据库等网络服务是否启动
          service --status-all兼容性好在较老系统或快速检查时使用

          推荐操作流程:

          1. 首先使用 systemctl --type=service --state=active 查看当前运行的服务。
          2. 使用 ss -tuln 验证关键网络服务(如SSH、Web、数据库)是否在监听端口。
          3. 如需了解开机启动项,使用 systemctl list-unit-files --type=service --state=envJOlqEzMKPabled

          这样可以全面、准确地掌握服务器上运行的服务情况。

          以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

          0

          精彩评论

          暂无评论...
          验证码 换一张
          取 消

          关注公众号