Linux进程管理

(一)概念及分类

1、进程:在自身的虚拟空间运行的一个独立的程序,从操作系统的角度来看,所有在系统上运行的东西都可以称为一个进程。但是进程和程序是有区别的,进程虽然有程序产生,但它并不是程序。

2、分类

(1)系统进程

可以执行内存资源分配和进程切换管理工作,并且该进程的运行不受用户的干预(包括root用户)。

(2)用户进程

执行用户程序、应用程序或内核之外的系统程序而产生的进程(可以由用户控制关闭)。

交互进程——由一个Shell中断启动的进程,在执行过程中需要与用户建立交互操作。(可在前后台运行)

批处理进程——是一个进程集合,负责按顺序启动其他进程。

守护进程——一直运行的一种程序,在Linux启动时启动,在系统关闭时终止。(httpd、crond进程等)

3、属性

(1)进程的几种状态

可运行状态、可中断的等待状态、不中断的等待状态、僵死状态、暂停状态

(2)进程之间的关系

init进程的后代(PID=1,所有进程都是它的后代)——>父进程——>子进程。


(二)进程的监控与管理

1、利用ps命令监控系统进程

例子:ps -ef | grep httpd

UID ——用户的ID标识号

PID ——进程的标识号

PPID ——父进程ID

STIME ——进程的启动时间

TTY ——进程所属的终端控制台

TIME ——进程启动后累计使用的CPU总时间

CMD ——正在执行的命令

%CPU ——进程占用的CPU百分比

%MEM ——进程占用内存的百分比

RSS ——进程的实际内存

VSZ ——进程虚拟大小

STAT ——进程的状态

R ——正在运行的进程

S ——休眠状态的进程

Z ——僵死进程

N ——优先级较低的进程

< ——优先级高的进程

s ——父进程

+ ——位于后台的进程

START——启动进程的时间


2、利用pstree监控系统进程

使用格式:pstree [-acnpu] [<PID>/<user>]

-a——显示启动每个进程对应的完整指令

-c——显示的进程中包含子进程和父进程

-n——根据PID排序输出

-p——显示进程PID

-u——显示进程对应的用户名称

PID——进程识别号

user——系统用户名


3、利用top监控系统进程

相比于ps,top能动态、实时的显示进程的状态。


4、lsof监控系统进程与程序

lsof——list opened files  列举出系统中已经被打开的文件,根据文件找到对应的进程信息。

lsof 123.c——显示使用123.c文件的进程

lsof -g gid ——显示指定的进程组打开的文件情况

lsof 123 ——显示123进程现在打开的文件

lsof -p gid ——通过进程号显示程序打开的所有文件及程序

lsof -i ——通过监听指定的协议、端口、主机等信息,显示符合条件的进程信息(可运用其进行一些检测及监控)


(三)任务调度进程crond

crond 是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。

系统任务调度——系统周期性所要执行的工作。

配置文件

SHELL=/bin/bash    //指定系统所要使用的SHELL

PATH=/sbin:/bin:/usr:sbin:/usr/bin    //指定了系统执行进程的路径

MAILTO=root //日志将通过邮件发送给root用户

HOME=/ //配置环境变量

#run-parts

01****root run-parts /etc/cron.hourly

02****root run-parts /etc/cron.daiy

22****root run-parts /etc/cron.weekly

42****root run-parts /etc/cron.monthly

用户任务调度——用户定期要执行的工作。


crontab工具的使用

1、crontab工具的使用格式

crontab [-u user] [file]

crontab [-u user] [-e | -l |-r | -i ]

-u user——设定用户

file——命令文件的名字(通过crontab文件载入)

-e——编辑某个用户的crontab文件内容

-l——显示某个用户的crontab文件内容

-r——删除crontab文件

-i——在删除文件时需确认


2、crontab文件的含义

minute hour day month week command

command表示需要执行的命令,之前的表示时间,即多长时间后开始执行。

(*)——代表所有可能的值,若week为*,则表示在满足其他条件后每周都执行其操作(进程)

(,)——逗号隔开的值指定一个范围。“1,2,5,7,8,9”

(-)——“2-6”表示“2,3,4,5,6”

(/)——“0-23、2”表示每2小时执行一次

举例:0  */3*** /user/local/apache2/apachectl restart  ——表示每隔3小时重启Apache服务一次


(四)kill终止进程

kill   [ 信号类型 ]    进程PID

kill  -l ——查看所有进程类型

kill -9 进程PID——强制结束进程


killall 终止一个组进程

killall   [信号类型]   进程名称


你可能感兴趣的:(linux,linux进程管理)