> 文章列表 > 0121 进程管理

0121 进程管理

0121 进程管理

1.在Linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid进程号)

2.每个进程都可能以两种方式存在,前台和后台。前台进程即用户当前屏幕上可进行的操作,后台进程即实际操作,由于屏幕上无法看到进程,通常使用后台方式执行

3.一般系统的服务以后台进程方式存在,且常驻系统中,直到关机才结束

1.显示系统执行的进程

ps命令可用来查看目前系统中哪些正在执行及执行状况

常用选项:

user:进程执行用户

PID:进程号

%CPU:占用CPU百分比

%MEM:占用物理内存百分比

VSZ:占用虚拟内存大小(KB)

RSS:占用物理内存内存大小

TTY:终端

STAT:运行状态

S表示休眠,s表示该进程是会话的先导进程,r表示正在运行,N表示进程拥有比普通优先级更低的优先级,D表示短期等待,Z表示僵死进程,T表示被跟踪或被停止...

START:执行开始时间

TIME:占用CPU时间

COMMAND:执行该进程的指令

演示:以全格式显示当前所有进程,查看sshd的父进程信息

ps -ef以全格式显示当前所有进程(-e显示所有进程,-f全格式)

PPID 父进程ID

 

2.终止进程  

某个进程执行一半需要停止时,或已消耗很大的系统资源,可以考虑停止该进程

基本语法

kill [选项] 进程号(通过进程号杀死进程)

killall 进程名称 (通过进程名杀死进程,也支持通配符)

常用选项:

-9 表示强迫进程立即停止

演示:

1.踢掉某个非法登录用户

  

2.终止远程登录服务器sshd,在适当时再次重启sshd服务

重启:/bin/systemctl start sshd.service

 

3.终止多个gedit

4.强制杀掉一个终端

3.查看进程树pstree 

基本语法

pstree [选项]

常用选项:

-p        显示进程的PID

-u        显示进程的所属用户

演示:

4.服务(service)管理

服务本质就是进程,运行在后台,通常会监听某个端口,等待其他程序请求,如mysql,ssh,防火墙等,又称守护进程

1.service管理指令

service  服务名  [start | stop | restart | reload | status]

在CentOs7.0后,很多服务不再使用service,而是systemctl

service指令管理的服务在 /etc/init.d 查看

 

 演示:用service指令查看,关闭,启动network

 查看服务名:

1.在 /etc/init.d 查看

2.使用setup

2.服务运行级别

Linux系统有7种运行级别:(常用3和5)

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护 ,禁止远程登录

运行级别2:多用户状态(无NFS),不支持网络

运行级别3:完全的多用户状态(有NFS),无界面,登陆后进入控制台命令行模式

运行级别4:系统未使用,保留

运行级别5:X11控制台,登陆后进入图像GUI模式

运行级别6:系统关闭并重启,默认运行级别不能设为6,否则不能正常启动

开机流程:

开机  -->  BIOS  -->  /boot  -->  systemd进程1  -->  运行级别  -->  运行级对应服务

3.chkconfig指令

通过chkconfig指令可以给服务的各个运行级别设置自启动/关闭

chkconfig指令管理服务在 /etc/init.d 查看

在CentOs7.0后,很多服务使用systemctl管理

基本语法:

chkconfig  --list  [| grep xxx]

chkconfig  服务名  --list

chkconfig  --level  5  服务名  on/off

演示:

4.systemctl管理指令 

基本语法

systemctl [start | stop | restart | status] 服务名

注意:这种方式只是临时生效,当重启系统后,回归之前对服务的设置,如希望永久生效,使用 systemctl [enable | disable ] 服务名 

systemctl指令管理在 /usr/lib/systemd/system 查看

设置服务自启动:

systemctl list-unit-files  [| grep 服务名]  (查看服务开机启动状态)

systemctl enable 服务名  (设置服务开机启动)

systemctl disable 服务名 (关闭服务开机启动)

systemctl is-enable 服务名(查询某个服务是否自启动)

演示:查看当前防火墙状态,关闭防火墙和重启防火墙

5.打开或关闭指定端口

防火墙开启,外部请求数据包不能跟服务器监听端口通讯,这时需要打开指定的端口

firewall指令:

firewall-cmd --permanent --add-port=端口号/协议        (打开端口)

firewall-cmd --permanent --remove-port=端口号/协议        (关闭端口)

firewall-cmd --reload        (重新载入使之生效)

firewall-cmd --query-port=端口号/协议        (查询端口是否打开)

演示:开放111端口,再关闭111端口

5.动态监控

1.监控进程

top与ps命令很相似,都用来显示正在执行的进程,不同在于top在执行一段时间可以更新正在运行的进程

基本语法

top [选项]

选项说明:

 交互操作说明:

 演示:

1.监视特定用户,如监视tom用户

top-->u 输入用户名 回车

2.终止指定进程,如结束tom登录 

k 输入PID 回车

2.监控网络

基本语法

netstat [选项]

选项说明:

-an    按一定顺序排列输出

-p      显示哪个进程在调用

演示:查看sshd的服务信息