四大命令助你玩转Linux进程管理

简介:

Linux是一个多用户、多任务的操作系统。在这样的系统中,各种计算机资源(如文件、内存、CPU等)的分配和管理都以进程为单位。为了协调多个进程对这些共享资源的访问,操作系统要跟踪所有进程的活动,以及它们对系统资源的使用情况,从而实施对进程和资源的动态管理。进程在一定条件下可以对诸如文件、数据库等客体进行操作。如果进程用作其他不法用途,将给系统带来重大危害。在现实生活当中,许多网络黑客都是通过种植“木马”的办法来达到破坏计算机系统和入侵的目的,而这些“木马”程序无一例外的是需要通过进程这一方式在机器上运行才能发挥作用的。另外,许多破坏程序和攻击手段都需要通过破坏目标计算机系统的合法进程尤其是重要系统进程,使得系统不能完成正常的工作甚至无法工作,从而达到摧毁目标计算机系统的目的。作为服务器中占绝大多数市场份额的Linux系统,要切实保证计算机系统的安全,我们必须对其进程进行监控和保护。

(更多详细内容请关注Linux系统全方位管理专题:http://os.51cto.com/art/201009/228849.htm  )

Linux操作系统包括如下三种不同类型的进程,每种进程都有其自己的特点和属性:

  1. 交互进程:由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
  2. 批处理进程:这种进程和终端没有联系,是一个进程序列。
  3. 守护进程:Linux系统启动时启动的进程,并在后台运行。

上述三种进程各有各的作用,使用场合也有所不同。

Linux系统提供了who、w、ps和top等察看进程信息的系统调用,通过结合使用这些系统调用,我们可以清晰地了解进程的运行状态以及存活情况,从而采取相应的措施,来确保Linux系统的安全。

1、who命令

该命令主要用于查看当前在线上的用户情况。系统管理员可以使用who命令监视每个登录的用户此时此刻的所作所为:

# who
root     pts/1        2010-02-21 15:56 (:0.0)

2、w命令

该命令也用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,w命令是who命令的一个增强版:

# w
 15:56:44 up 38 min,  1 user,  load average: 0.56, 0.15, 0.12
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1    :0.0             15:56    0.00s  0.19s  0.05s w

3、ps命令

最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。ps命令可以监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,如果需要检测其情况,可以使用ps命令。下面是一个ps命令的例子:

# ps
  PID TTY          TIME CMD
 2817 pts/1    00:00:00 bash
 2836 pts/1    00:00:00 ps

4、top命令

top命令和ps命令的基本作用是相同的,显示系统当前的进程和其他状况;但是top是一个动态显示过程,可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确地说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用。内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。下面是一个top命令的例子:

# top
top - 15:58:07 up 39 min,  1 user,  load average: 2.09, 0.68, 0.30
Tasks: 112 total,   2 running, 108 sleeping,   0 stopped,   2 zombie
Cpu(s): 30.6%us, 25.2%sy,  0.0%ni, 41.2%id,  0.3%wa,  2.7%hi,  0.0%si,  0.0%st
Mem:    485736k total,   477828k used,     7908k free,    31252k buffers
Swap:  1285160k total,        0k used,  1285160k free,   291192k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                          
 2502 root      15   0 36680  10m 5776 S 40.0  2.2   0:54.26 Xorg                                             
 2814 root      15   0  127m  16m  10m S  3.0  3.5   0:03.62 gnome-terminal                                   
 2616 root      15   0 97356  14m  10m S  2.6  3.1   0:02.43 gnome-panel                                      
 2609 root      15   0 38660  10m 7544 S  2.0  2.1   0:01.57 metacity                                         
 2640 root      15   0 96276  13m 9448 S  2.0  2.7   0:01.46 wnck-applet                                      
 2597 root      15   0 33916 8144 6768 S  1.0  1.7   0:01.32 gnome-settings-                                  
 2618 root      15   0  133m  20m  14m S  1.0  4.4   0:04.66 nautilus                                         
 2709 root      15   0 16396 3488 2736 S  0.7  0.7   0:02.72 gnome-screensav                                  
 2837 root      15   0  2160 1008  788 R  0.7  0.2   0:00.31 top                                              
 2855 root      15   0  106m  22m  14m S  0.7  4.8   0:01.87 gedit                                            
 2035 root      18   0 33180 1276  536 S  0.3  0.3   0:01.51 pcscd                                            
 2076 root      21   0  9336 1108  856 S  0.3  0.2   0:00.35 automount                                        
 2313 root      18   0  1920  624  544 S  0.3  0.1   0:03.46 hald-addon-stor                                  
 2665 root      15   0  2528 1156  948 S  0.3  0.2   0:00.26 gam_server                                       
 2703 root      15   0 64020  24m  14m S  0.3  5.3   0:02.39 /usr/bin/sealer                                  
 2713 root      15   0 49500 6528 3484 S  0.3  1.3   0:00.31 scim-panel-gtk                                   
    1 root      15   0  2036  640  548 S  0.0  0.1   0:02.16 init                                             
    2 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                      
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                      
    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                       
    5 root      10  -5     0    0    0 S  0.0  0.0   0:00.06 events/0                                         
    6 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 khelper                                          
    7 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 kthread                                          
   10 root      10  -5     0    0    0 S  0.0  0.0   0:00.26 kblockd/0   

       

以上介绍的是目前在Linux下使用得最常见的进程状况查看工具,它们是随Linux套件发行的,安装好系统之后,用户就可以使用。当然,随着开源的不断发展,相信将会有更多的该方面的工具出现,以方便用户选择和使用。

现在我们已经介绍了Linux文件系统保护与进程管理方面需要注意的事项。对于Linux系统的全方位管理,还需要注意用户管理和日志管理方面的保护,这些将在之后的文章中进行介绍。















本文转自samsunglinuxl51CTO博客,原文链接: http://blog.51cto.com/patterson/398512,如需转载请自行联系原作者


相关文章
|
1月前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
69 1
|
1月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
57 14
Linux 10 个“who”命令示例
|
12天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
37 8
|
21天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
116 20
|
21天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
89 13
|
21天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
51 7
|
28天前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
1月前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
2月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
2月前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。