在正式的工作环境中,作为一名Linux系统管理员,监控系统进程的运行情况应该是日常工作之一。那么,究竟什么是流程呢?什么是流程?进程是正在执行的程序或命令。每个进程都是一个运行实体,有自己的地址空间,占用一定的系统资源。它由程序指令组成,可以从文件和其他程序中读取。从系统用户检索或输入的数据。操作系统为进程分配一个ID,称为PID(ProcessID)。进程类型前台进程:这些进程由终端会话启动和控制。换句话说,需要有一个用户连接到系统才能启动这样的进程;它们不会作为系统功能/服务的一部分作为后台进程自动启动:这些进程未连接到终端;它们不需要任何用户输入守护进程:这是一种特殊类型的后台进程。它们在系统启动时启动,并在操作系统中作为服务运行。所有可执行程序和命令都会产生进程。只是有些程序和命令非常简单,比如ls命令等,执行完就会结束,相应的进程也会结束,所以我们很难捕捉到这些进程。但是仍然有一些程序和命令,比如httpd进程,启动后会留在系统中。我们称这样的过程为永久记忆过程。有些进程会产生一些新的进程,我们称这些进程为子进程,进程本身称为父进程。比如我们必须正常登录shell环境才能执行系统命令,而Linux的标准shell是bash。我们在bash中执行了ls命令,那么bash就是父进程,而ls命令是在bash进程中产生的进程,所以ls进程是bash进程的子进程。也就是说子进程是依赖父进程生成的。如果父进程不存在,则子进程也不存在。查看系统中的所有进程:psauxps命令用于查看系统中的进程状态,格式为“ps[parameter]”。查看系统中所有进程$psaux参数功能-a显示所有进程(包括其他用户的进程)-u用户等详细信息-x显示没有控制终端的进程栏目具体含义:含义用户生成的列名USERPID进程的进程ID%CPU进程占用CPU资源的百分比,占用百分比越高,进程消耗的资源越多%MEM进程占用物理内存的百分比,占用百分比越高,进程消耗的资源越多运行。STAT进程状态。START进程的开始时间。TIME该进程占用CPU计算时间,注意不是系统时间。COMMAND生成此进程的命令的名称。常见的STAT进程状态有如下几种:D:不能被唤醒的睡眠状态,一般用于I/OR:进程正在运行S:进程正在休眠,可以被唤醒T:停止状态,可能是Suspended在后台或者进程处于调试状态W:内存交互状态(自2.6内核起无效)X:死亡进程(不应出现)Z:僵尸进程。进程已经终止,但一些程序还在内存中:后台查看系统所有进程ps-leps-le可以查看系统所有进程,还可以看到进程的父进程的PID和进程优先级。参数function-llongformat显示更详细的信息;-e显示所有进程;如上图所示,我们来看一下上面输出信息中每一列的具体含义:列名含义F进程标志,表示进程的权限,常用标志有两种:1.进程可以是复制,但不能执行;4:进程使用超级用户权限;S进程状态。具体状态与psaux命令中的STAT状态一致;UID是运行这个进程的用户ID;PID进程的ID;PPID父进程的ID;C进程CPU使用率,单位为百分比;PRI进程的优先级,值越小,进程的优先级越高,越早被CPU执行;NI进程的优先级值越小,进程越早执行;ADDR中内存中的进程在哪里;该进程在SZ内存中占用多少;WCHAN进程是否正在运行。“-”表示正在运行;TTY是哪个终端产生的进程;TIME进程占用CPU计算时间,注意不是系统时间;CMD生成本进程的命令名;删除进程killkill可以向程序发送指定的信息,默认消息是SIGTERM(15),终止指定的程序。如果程序仍然无法终止,则使用SIGKILL(9)消息尝试强制删除程序。kill命令的格式如下:$kill[signal]PID信号编号信号名称含义0EXIT程序退出时收到的消息。1HUP挂断电话线或终端连接的挂断信号。此信号还可以导致某些进程重新初始化而不终止。2INT表示结束进程,但不是强制的。相当于用键盘输入[ctrl]-c来中断一个程序。3QUIT退出9KILL杀死进程,即强制结束进程。15TERM正常结束进程。该命令的默认信号是19SIGSTOP。我们最常使用的信号编号是1、9和15,通过在键盘上键入[ctrl]-z来暂停程序的进程。最后,我们来看看所谓的“僵尸进程”。僵尸进程是子进程先于父进程结束,但父进程不回收子进程,释放子进程占用的资源。这时候子进程就会变成僵尸进程。僵尸进程会影响主机的稳定性。因此,僵尸进程产生后,必须对产生僵尸进程的软件进行优化,避免一直产生僵尸进程;对于已经产生的僵尸进程,发现后可以强行终止。
