在CentOS操作系统中,查看进程是系统管理和故障排除的重要任务之一,本文将详细介绍如何使用各种命令来查看系统中的进程,包括ps、top、pgrep等命令,并解释其输出信息和使用方法。
一、使用ps命令查看进程
1. ps aux命令
ps aux
命令用于显示当前所有正在运行的进程,该命令的输出包括每个进程的PID(进程ID)、TTY(终端类型)、TIME(累计CPU时间)、CMD(命令行)等信息。
ps aux
输出示例:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 22564 1328 ? Ss 09:27 0:01 /sbin/init ...
2. ps ef命令
ps ef
命令以全格式显示所有进程,包括用户、进程ID、父进程ID、CPU和内存使用情况等详细信息。
ps ef
输出示例:
UID PID PPID C STIME TTY TIME CMD root 1 0 0 Sep09 ? 00:00:05 /sbin/init root 769 757 0 10:17 ? 00:00:00 /usr/sbin/rsyslogd n ...
3. ps u username命令
ps u username
命令用于查看指定用户运行的所有进程,要查看用户“vivek”运行的所有进程:
ps u vivek
输出示例:
UID PID PPID C STIME TTY TIME CMD vivek 1234 1233 0 10:20 pts/0 00:00:01 bash ...
4. ps p pid命令
ps p pid
命令用于查看指定进程ID的详细信息,要查看PID为1234的进程:
ps p 1234 o pid,ppid,cmd,%cpu,%mem
输出示例:
PID PPID CMD %CPU %MEM 1234 1 /usr/bin/firefox 2.5 12.3
二、使用top命令查看进程
top
命令提供了实时更新的系统状态视图,包括CPU和内存使用情况、运行中的进程列表及其资源消耗,输入top
命令后,界面会每三秒刷新一次,按q
键退出top
命令。
top
输出示例:
top 10:20:30 up 1 day, 2:34, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2048 total, 845 used, 1203 free, 234 buffers KiB Swap: 2048 total, 0 used, 2048 free. 1234 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 123456 65432 12345 S 2.5 3.2 0:10.23 firefox ...
三、使用pgrep命令查找进程
pgrep
命令用于根据进程名称查找进程ID,要查找名为“sshd”且属于root用户的所有进程:
pgrep u root sshd
输出示例:
1234 5678
四、使用pstree命令查看进程树
pstree
命令以树状结构显示进程之间的关系,如果指定了用户名,则以用户所拥有的进程作为根节点。
pstree
输出示例:
systemd(1)─┬─ModemManager(687) ├─accountsdaemon(769) ├─agetty(865) ├─cgmanager(829) ├─cgroup(830)─┬─dockerd(1234)─┬─containerdshim(1235)─┬─dockercontainerdctr(1236) │ │ ├─dockercontainerdshim(1237) │ │ └─dockercontainerdshim(1238) ├─cron(856) ├─dbusdaemon(771) ├─dnsmasq(893) ├─fail2banserver(967) ├─flanneld(979) ...
五、使用htop命令查看进程
htop
是一个交互式的进程查看工具,类似于top
,但功能更强大,可以垂直和水平滚动查看所有进程及其命令行,安装htop
的命令如下:
yum install htop
启动htop
:
htop
输出示例:
1 [ 1.2%] Tasks: 123, CPUs: 4* Mem: 2G total, 1G free Uptime: 1 day, 2:34 Load Avg: 0.00, 0.01, 0.05 Tasks: 123, Total: 245; 123 running; 122 sleeping; 0 stopped; 0 zombie PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ COMMAND 1234 root 20 0 123456 65432 12345 S 2.5 3.2 0:10.23 firefox ...
六、使用atop命令查看系统负载
atop
是一个交互式监控工具,可以显示系统层级的关键硬件资源使用情况,如CPU、内存、硬盘和网络,输入以下命令启动atop
:
atop
输出示例:
System Summary on atop (every 10 sec) as of Mon Oct 2 10:20:30 2023 Resources: scale=auto us, underruns=0, press 'h' for help and 'q' to quit. CtrlA for sort order (reverse with Shift), '=' for more columns, 'X' for fewer columns. CPU states usage: [user:10.5%, sys:5.2%, idle:84.3%, wait:0.0%] (sum=100%) CPU core states: [core1: user=10.5%, sys=5.2%, idle=84.3%, wait=0%] ... [coreN] Memory: TOTAL=2G USED=1G FREE=1G (buffers=234M) Swap: TOTAL=2G USED=0K FREE=2G (cached=1234K) Disks: HDIO=1.2K/s, CDIO=0.0K/s, DISKFULL=0%, DISKREAD=2.3K/s, DISKWRIT=0.0K/s, DISKFREE=1.2G/s, DISKTRIM=0K/s, DISKCACHE=1234K/s ... NetIfaces: lo=0K/s, enp0s3=1.2K/s, wlp2s0=2.3K/s ... Procs: total=123, threads=456 (running=1, sleeping=455) ... Tasks: total=123, running=1, sleeping=122, idle=0, zombie=0 ... ...
通过上述命令,用户可以全面了解CentOS系统中的进程状态和管理方法,以下是一些最佳实践建议:
1、定期监控:使用top
或htop
命令定期监控系统状态,及时发现异常进程。
2、合理使用优先级:通过nice
和renice
命令调整进程优先级,确保关键任务优先执行。
3、日志分析:定期检查/var/log
目录下的日志文件,如messages
和secure
,获取系统和进程的关键信息。
4、自动化管理:利用systemd
进行服务管理,提高系统稳定性和效率。
5、调试工具:掌握strace
和gdb
等调试工具,排查进程问题。
6、资源限制:使用ulimit
和cgroups
技术设置进程的资源限制,防止单个进程过度占用系统资源。
熟练使用这些命令和工具,可以帮助系统管理员和开发人员更好地管理和优化CentOS系统,确保系统的高效稳定运行。