Linux进程管理是一项十分重要的工作,可以帮助我们更好的控制系统。这里简单介绍一下Linux进程操作名令,让初学者了解Linux中进程的管理。
Linux进程管理是一项十分重要的工作,可以帮助我们更好的控制系统。进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。这里介绍常用进程操作命令。
Linux进程操作命令1:ps 进程状态查询命令。
命令格式#ps [[选项]]
常用选项:
● -a,显示所有用户进程。
● -e,显示进程环境变量。
● -l,给出长列表。
● -r,只显示正在运行的进程。
● -S,增加CPU时间和页面出错。
● -w,按宽格式显示输出。默认情况下,如果输出结果不能在一行里显示,将会缩短结果输出。使用这个选项可以避免这个问题。
● -txx,只显示受tty.xx控制的进程。
● -u,打印用户格式,显示用户名和进程的起始时间。
● -x,显示不带控制终端的进程。
命令使用说明:
例子:
例A:分页显示所有的进程,同时显示进程的用户名和起始时间。命令如下:
- #ps -axu | more
- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- root 1 0.2 0.1 1388 492 ? S 22:06 0:04 init
- root 2 0.0 0.0 0 0 ? SW 22:06 0:00 [keventd]
- root 3 0.0 0.0 0 0 ? SWN 22:06 0:00 [ksoftirqd/0]
- root 4 0.0 0.0 0 0 ? SW 22:06 0:00 [kswapd]
- root 5 0.0 0.0 0 0 ? SW 22:06 0:00 [bdflush]
- root 6 0.0 0.0 0 0 ? SW 22:06 0:00 [kupdated]
- root 8 0.0 0.0 0 0 ? SW 22:06 0:00 [kjournald]
- root 1077 0.0 0.1 1360 400 tty4 S 22:09 0:00
- /sbin/mingetty tty4
- root 1078 0.0 0.1 1360 400 tty5 S 22:09 0:00
- /sbin/mingetty tty5
- root 1079 0.0 0.1 1360 400 tty6 S 22:09 0:00
- /sbin/mingetty tty6
- ........
ps命令输出字段的含义:
● USER,进程所有者的用户名。
● PID,进程号,可以唯一标识该进程。
● %CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
● %MEM,进程使用内存的百分比。
● VSZ,进程使用的虚拟内存大小,以K为单位。
● RSS,进程占用的物理内存的总数量,以K为单位。
● TTY,进程相关的终端名。
● STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
● START,进程开始运行时间。
● TIME,进程使用的总CPU时间。
● COMMAND,被执行的命令行。
Linux进程操作命令2:kill 结束进程命令。
命令格式:#kill [[选项]] [[信号]] <进程号>
常用选项:
● -s,指定需要送出的信号。既可以是信号名也可以对应数字。
● -p,指定kill命令只是显示进程的PID,并不真正送出结束信号。
● -l,打印可以用kill送的信号名表,可以在/usr/include/linux/signal.h文件中找到。
[[信号]]
送入可选信号,默认值是SIGTERM,其他常用的两个值是---SIGHUP(是调制解调器通过电话挂起的设备)和SIGKILL(不能被进程忽略)。
命令使用说明:
用这个命令来结束正在运行的程序,可以达到windows下“任务管理器”的功效。特别是在某一进程运行老是没什么结果出现象死机一样的时候,可能这个命令杀到那个进程,使系统恢复正常。
例子:
例A:杀掉上例A中的cupsd进程。命令如下:
#kill 945
例B:显示kill的所有信号。
- #kill -l
- 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
- 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
- 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
- 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
- 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
- 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
- 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
- 30) SIGPWR 31) SIGSYS 35) SIGRTMIN 36) SIGRTMIN+1
- 37) SIGRTMIN+2 38) SIGRTMIN+3 39) SIGRTMIN+4 40) SIGRTMIN+5
- 41) SIGRTMIN+6 42) SIGRTMIN+7 43) SIGRTMIN+8 44) SIGRTMIN+9
- 45) SIGRTMIN+10 46) SIGRTMIN+11 47) SIGRTMIN+12 48) SIGRTMIN+13
- 49) SIGRTMIN+14 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
- 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8
- 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4
- 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1
四大命令助你玩转Linux进程管理
进程是所有现代操作系统的一个核心概念,很多攻击的发动、黑客的入侵都是通过进程来实现的,因此,用户也需要对Linux系统的重要进程进行特别地“关照”和管理。本文概述了Linux进程管理保护方面需要考虑的事项。
【51CTO独家特稿】Linux是一个多用户、多任务的操作系统。在这样的系统中,各种计算机资源(如文件、内存、CPU等)的分配和管理都以进程为单位。为了协调多个进程对这些共享资源的访问,操作系统要跟踪所有进程的活动,以及它们对系统资源的使用情况,从而实施对进程和资源的动态管理。进程在一定条件下可以对诸如文件、数据库等客体进行操作。如果进程用作其他不法用途,将给系统带来重大危害。在现实生活当中,许多网络黑客都是通过种植“木马”的办法来达到破坏计算机系统和入侵的目的,而这些“木马”程序无一例外的是需要通过进程这一方式在机器上运行才能发挥作用的。另外,许多破坏程序和攻击手段都需要通过破坏目标计算机系统的合法进程尤其是重要系统进程,使得系统不能完成正常的工作甚至无法工作,从而达到摧毁目标计算机系统的目的。作为服务器中占绝大多数市场份额的Linux系统,要切实保证计算机系统的安全,我们必须对其进程进行监控和保护。
本文隶属于专题:Linux系统全方位管理
Linux操作系统包括如下三种不同类型的进程,每种进程都有其自己的特点和属性:
- 交互进程:由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
- 批处理进程:这种进程和终端没有联系,是一个进程序列。
- 守护进程: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 w3、ps命令
最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。ps命令可以监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,如果需要检测其情况,可以使用ps命令。下面是一个ps命令的例子:
# ps PID TTY TIME CMD 2817 pts/1 00:00:00 bash 2836 pts/1 00:00:00 ps4、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系统的全方位管理,还需要注意用户管理和日志管理方面的保护,这些将在之后的文章中进行介绍。
如何在Linux中查看所有正在运行的进程
进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。在Linux系统中有很多命令。那么哪些命令可以查看所有运行中的进程呢?让我们听飞哥介绍一下。
你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。
ps命令
输入下面的ps命令,显示所有运行中的进程:
# ps aux | less其中,
-A:显示所有进程
a:显示终端中包括其它用户的所有进程
x:显示无控制终端的进程
任务:查看系统中的每个进程。
# ps -A # ps -e任务:查看非root运行的进程
# ps -U root -u root -N任务:查看用户vivek运行的进程
# ps -u vivek任务:top命令
top命令提供了运行中系统的动态实时视图。在命令提示行中输入top:
# top输出:
图1:top命令:显示Linux任务
按q退出,按h进入帮助。
任务:显示进程的树状图。
pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。
$ pstree输出示例:
图2:pstree - 显示进程的树状图
任务:使用ps列印进程树
# ps -ejH # ps axjf任务:获得线程信息
输入下列命令:
# ps -eLf # ps axms任务:获得安全信息
输入下列命令:
# ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM任务:将进程快照储存到文件中
输入下列命令:
# top -b -n1 > /tmp/process.log你也可以将结果通过邮件发给自己:
# top -b -n1 | mail -s 'Process snapshot' you@example.com任务:查找进程
使用pgrep命令。pgrep能查找当前正在运行的进程并列出符合条件的进程ID。例如显示firefox的进程ID:
$ pgrep firefox下面命令将显示进程名为sshd、所有者为root的进程。
$ pgrep -u root sshd向htop和atop说hello
htop是一个类似top的交互式进程查看工具,但是可以垂直和水平滚动来查看所有进程和他们的命令行。进程的相关操作(killing,renicing)不需要输入PID。要安装htop输入命令:
# apt-get install htop或
# yum install htop在命令提示行中输入htop:
# htop输出示例:
图3:htop - Interactive Linux / UNIX process viewer
atop工具
atop是一个用来查看Linux系统负载的交互式监控工具。它能展现系统层级的关键硬件资源(从性能角度)的使用情况,如CPU、内存、硬盘和网络。
它也可以根据进程层级的CPU和内存负载显示哪个进程造成了特定的负载;如果已经安装内核补丁可以显示每个进程的硬盘和网络负载。输入下面的命令启动atop:
# atop输出示例:
图4:AT Computing's System & Process Monitor
原文链接:http://hi.baidu.com/imlidapeng/blog/item/4ef37d634b58b957eaf8f83d.html