如何查看linux服务器运行状态?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看linux服务器运行状态?相关的知识,希望对你有一定的参考价值。
1、ps aux 或netstat -tlunpps是进程查看命令,netstat是端口查看命令,在Linux系统中,服务一定是有进程的,所以使用ps命令可以查看服务运行情况,另外,Linux服务多数是网络服务,所以通过netstat命令也可以查看服务运行状态。
2、service 服务名 status
比如查看httpd的Web服务的运行状态,执行service httpd status,如下图所示:
3、/sbin/service --status-all |grep "服务名"
比如查看httpd的web服务,执行 /sbin/service --status-all |grep "httpd"即可。如下图所示。
4、chkconfig --list
比如查看httpd的web服务,执行 chkconfig --list |grep "httpd"即可。如下图所示。 参考技术A Linux系统如何查看服务的运行状态?
1. 前言
本文主要讲解如何在Linux系统上查看服务的运行状态。
Linux系统提供各种系统服务(如进程管理、登录服务、日志、计划任务等)和网络服务(如远程登录、电子邮件、打印机、web主机、数据存储、文件传输、域名解析(使用DNS)、动态IP地址分配(使用DHCP)等等)。
Linux系统如何查看服务的运行状态
从技术上讲,服务是一个进程或一组进程(通常称为守护进程),在后台连续运行,等待请求(特别是来自客户机的请求)。
Linux支持不同的方式来管理服务,比如启动、停止、重启、开机自启动等,大多数最新的Linux发行版在使用相同的进程管理器-systemd。
systemd是Linux系统和服务管理器init进程的一个替代品,它与SysV和LSB init脚本兼容,systemctl命令是管理systemd的主要工具。
systemd的组件
systemd的组件
在本教程中,我们将演示如何查看Linux系统中systemd可管理的所有服务。
2. 如何查看Linux系统中systemd可管理的所有服务
当您不带任何参数运行systemctl命令时,它将打印所有已加载的systemd单元的列表(请阅读systemd文档以获得有关systemd单元的更多信息)。显示各服务单元的状态(无论是活动的还是非活动的)。
systemctl
如何查看Linux系统中systemd可管理的所有服务
列出系统上所有已加载的服务,查看它们活动状态,是否正在运行、是否关闭、是否启动失败。
systemctl list-units --type=service
或者
systemctl --type=service
列出系统上所有已加载的服务,查看它们活动状态
要列出所有已加载但已经设置开机自启动的服务
systemctl list-units --type=service --state=active
systemctl --type=service --state=active
要列出所有已加载但已经设置开机自启动的服务
查看所有正在运行的服务:
systemctl list-units --type=service --state=running
systemctl --type=service --state=running
查看所有正在运行的服务
如果经常使用前面的命令,可以在创建别名命令,编辑bashrc文件
vim ~/.bashrc
添加以下内容,创建别名命令running_services。
alias running_services='systemctl list-units --type=service --state=running'
保存文件并退出。使用running_services命令查看服务器上所有已加载、正在运行的服务的列表。
running_services
此外,服务的一个重要方面是它们使用的端口。要确定守护进程监听的端口,可以使用netstat或ss工具,如下所示。
其中-l选项表示打印所有监听的套接字,-t显示所有TCP连接,-u显示所有UDP连接,-n表示打印数字端口号(而不是应用程序名称),-p表示显示应用程序名称。
netstat -ltup | grep sshd
或者
ss -ltup | grep sshd
第五列显示套接字:本地地址:端口。在本例中,进程sshd正在端口22上监听。
查看守护进程监听的端口
此外,如果您的服务器防火墙服务运行的状态,使用以下命令查看已经允许或者阻塞的端口或者服务
查看防火墙服务运行的状态
firewall-cmd --list-services
firewall-cmd --list-ports
Ubuntu 用户
sudo ufw status
3. 总结
在本教程中,我们演示了如何在Linux中查看systemd下运行的服务及这些服务的运行状态。我们还介绍了如何检查服务正在监听的端口,以及如何查看在防火墙服务已经允许或者阻塞的服务和端口号。 参考技术B 1、ps aux 或netstat -tlunp
ps是进程查看命令,netstat是端口查看命令,在Linux系统中,服务一定是有进程的,所以使用ps命令可以查看服务运行情况,另外,Linux服务多数是网络服务,所以通过netstat命令也可以查看服务运行状态。
2、service 服务名 status
比如查看httpd的Web服务的运行状态,执行service httpd status,如下图所示:
3、/sbin/service --status-all |grep "服务名"
比如查看httpd的web服务,执行 /sbin/service --status-all |grep "httpd"即可。如下图所示。
4、chkconfig --list
比如查看httpd的web服务,执行 chkconfig --list |grep "httpd"即可。如下图所示。
1、打开linux系统,在linux的桌面的空白处右击。

2、在弹出的下拉选项里,点击打开终端。

3、使用ps aux 或bainetstat -tlunp命令,通过回车运行,即可查看服务器运行状态,
Linux查看系统状态命令
iostat
iostat 命令详细地显示了存储子系统方面的情况。你通常用iostat来监控存储子系统总体上运行状况如何,并且在用户注意到服务器运行缓慢之前提早发现输入/输出缓慢的问题。相信我,你应该在用户发现这些问题之前先发现这些问题!
meminfo和free
meminfo为你详细显示了内存方面的情况。你通常可以使用另一个程序,比如cat和grep,来访问meminfo的信息。比如说,cat /proc/meminfo为你详细显示了服务器的内存在任何一个时间的使用情况。
如果想快速了解内存的概要信息,可以使用free命令。简而言之,free为你提供了概要信息;meminfo为你提供了详细信息。
mpsta
mpstat命令可以报告多处理器服务器上每个可用处理器的活动情况。如今,由于多核处理器,这个命令适用于几乎所有服务器。mpstat还可以报告所有服务器上的处理器的平均活动情况。它让你能够按照系统或按照处理器来显示总的处理器统计信息。这个概要信息可以在潜在的应用程序问题惹毛用户之前提醒你注意。
netstat
netstat与ps一样,也是Linux管理员每天都使用的Linux工具。它显示了与网络有关的大量信息,比如套接口使用情况、路由、接口、协议、网络统计信息及更多信息。最常用的一些选项如下:
-a 显示套接口的所有信息
-r 显示路由信息
-i 显示网络接口的统计信息
-s 显示网络协议的统计信息
nmon
nmon是Nigel‘s Monitor的简称,这款广受欢迎的开源工具用来监控Linux系统的性能。nmon可以监控多个子系统的性能信息,比如处理器使用率、内存使用率、运行队列的信息、磁盘输入/输出统计信息、网络输入/输出统计信息、内存分页活动和进程衡量指标。然后,你可以通过curses"图形化"界面,查看 nmon的实时系统衡量结果。
想运行nmon,你可以从外壳来启动该工具。一旦启动,只要输入单键命令,就可以选择要监控的子系统。比如说,想获得处理器、内存和磁盘等方面的统计信息,只要分别输入c、m和d.也可以使用带-f标志的nmon,将性能统计信息保存到CSV文件中,以便日后分析。
就日常的服务器监控而言,我觉得nmon是我的Linux系统管理工具包中最有用的一个程序。
pmap
pmap命令用来报告服务器的进程所使用的内存量。你可以用这个工具来确定服务器上哪些进程被分配了内存、这些进程中有谁在大量使用内存。
ps和pstree
ps和pstree这两个命令是Linux系统管理员的两个得力助手。它们都能以列表的形式显示所有目前在运行的进程。ps可以告诉你服务器的程序在使用多少的内存和处理器时间。pstree显示的信息比较少,但着重表明了哪些进程是其他进程的子进程。掌握了这些信息,你就能发现失控的进程,然后用 Linux"不留活口"的kill命令,来终止这些进程。
sar
sar程序好比是系统监控工具领域的瑞士军刀。sar命令实际上由三个程序组成:显示数据的sar、收集数据的sa1以及保存数据的sa2.一旦安装完毕,sar就能生成详细的概要信息,显示处理器使用率、内存分页活动、网络输入/输出和传输方面的统计信息、进程创建活动以及磁盘设备活动。sar和 nmon的一大区别在于,前者更适合长期监控系统,我觉得nmon则比较适合帮助我快速查看服务器的运行状况。
strace
strace 经常被认为是程序员的调试工具,但它的功用不仅仅用来调试。它可以截获和记录进程调用系统的情况。因而,它是一个实用的诊断、教学和调试工具。比如说,你可以使用strace来查出某个程序在启动时实际上使用哪个配置文件。
不过strace的确有一个缺陷。它在检查某个进程时,该进程的性能会一落千丈。因而,只有在我已经有极其充分的理由认为某个程序引起问题的情况下,才使用strace.
tcpdump
tcpdump是一个简单而可靠的网络监控实用工具。其基本的协议分析功能让你能够粗略查看网络上的情况。不过想真正深入分析网络方面的情况,你应该使用Wireshark(下面有介绍)。
top
top命令显示了活动进程方面的情况。默认情况下,它显示了服务器上运行的最消耗处理器的任务,而且每5秒钟就刷新一次列表。你还可以按多个标准对进程进行分类,比如PID(进程ID);年限,最新的列在最前面;时间,按累计时间;以及驻留内存使用情况和自启动以来一直使用处理器的总时间。我觉得它提供了一种快速而简易的方法,便于查看有没有进程开始即将失控、带来问题。
uptime
uptime可用来查看某台服务器运行了多久、有多少个用户登录上去。它还显示了服务器平均负载的概要信息。负载的最佳值是1或更小,这意味着每个进程可以立即访问处理器、不存在处理器周期丢失的情况。
vmstat
大体上来说,你可以使用vmstat来监控虚拟内存方面的情况。Linux不断使用虚拟内存,以获得最佳的存储性能。
如果你的应用程序在占用过多的内存,你就会遇到频繁被换出内存(page-out)的情况——即程序从内存进入到系统硬驱上的交换空间。你的服务器可能会进入到这个阶段:花在管理内存分页上的时间比花在运行应用程序上的时间还多——这种情况被称为抖动(thrashing)。当你的电脑抖动时,性能就一落千丈。Vmstat可以显示平均的数据或实际样本,可以帮助你发觉大量耗用内存的程序和进程,以免它们导致服务器运行起来如同蜗牛缓行。
Wireshark
Wireshark之前名为Ethereal(而且现在仍经常这么叫),是tcpdump的同类工具,不过它更为高级,拥有先进得多的协议分析和报告功能。Wireshark既有GUI界面,又有外壳界面。如果你从事专业级的网络管理工作,只能使用ethereal.而如果你在使用 Wireshark/ethereal,我强烈建议阅读Chris Sander所着的《实用数据包分析》(Practical Packet Analysis),该书深入浅出地介绍了如何最充分地利用这款实用程序。
系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态
用户
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务
# chkconfig -list # 列出所有系统服务
# chkconfig -list | grep on # 列出所有启动的系统服务
程序
# rpm -qa # 查看所有安装的软件包
以上是关于如何查看linux服务器运行状态?的主要内容,如果未能解决你的问题,请参考以下文章