Linux学习笔记11之进程管理和服务管理
进程管理
基本介绍
1.在Linux中,每个执行的程序都称为一个进程。每个进程都分配一个id号(pid,进程号)
2.每个进程都可能以两种方式存在。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
3。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
显示系统执行的进程
-
基本介绍
-
ps
指令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。 -
pid
进程识别号 -
tty
终端机号 -
time
进程所消耗CPU时间 -
cmd
正在执行的命令或者进程名 -
ps -a
功能:显示当前终端的所有进程信息 -
ps -u
功能:以用户的格式显示进程信息 -
ps -x
功能:显示后台进程运行的参数
-
-
ps详解
-
指令:
ps -aux | grep sshd
功能:查看有没有sshd服务 -
指令说明:
-
System V 展示风格
-
USER : 用户名称
-
PID : 进程号
-
%CPU : 进程占用cpu的百分比
-
%MEM : 进程占用物理内存的百分比
-
VSZ : 进程占用的虚拟内存大小(单位:kb)
-
RSS : 进程占用的物理内存大小(单位:kb)
-
TT : 终端名称,缩写
-
STAT : 进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-表示正在运行,Z-表示僵死进程,D-表示短期等待,T-表示被跟踪或者被停止
-
STARTED :进程的启动时间
-
TIME : CPU时间,即进程使用CPU的总时间
-
COMMAND :启动进程所用的命令和参数,过长会被截断显示
-
-
-
应用实例
-
要求: 以全格式显示当前的所有进程,查看进程的父进程。
ps -ef
是以全格式显示当前的所有进程-e
显示所有进程-f
全格式ps -ef |grep xxx
-
是BSD风格
-
UID : 用户ID
-
PID : 进程ID
-
PPID : 父进程ID
-
C : CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
-
STIME :进程启动的时间
-
TTY : 完整的终端名称
-
TIME : CPU时间
-
CMD : 启动进程所用的命令和参数
-
-
终止进程kill和killal
-
介绍
若是某个进程执行一半需要停止时,或者是已经消耗了很大的系统资源,此时可以考虑停止该进程。 -
基本语法
kill [选项] 进程号
功能描述:通过进程号杀死进程killall 进程名称
功能描述:通过进程名称杀死进程,也支持通配符,在系统因负载过大而变得很慢时很有用。 -
常用选项
-9
:表示强迫进程立即停止 -
应用实例
-
案例1:踢掉某个非法登录用户
指令:
kill 进程号
-
案例2 终止远程登录服务sshd,在适当的时侯再次重启sshd服务
指令:kill sshd对应的进程号
-
案例3:终止多个gedit
指令:killall gedit
-
案例4:强制杀掉一个终端
指令:kill -9 进程号
-
查看进程树pstree
-
基本语法
pstree [选项]
功能:可以更加直观查看进程信息 -
常用选项
-p
:显示进程的pid-u
:显示进程的所属用户 -
应用实例
-
案例1:以树状的形式显示进程的pid
指令:pstree -p
-
案例2:以树状的形式查看进程的用户id
指令:pstree -u
-
服务(service)管理 重要!!!!
-
介绍:
服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如mysqld,ssh,防火墙等 ,因此我们又称为守护进程 -
service管理指令
-
1.
service 服务名 [start|stop|restart|reload|status]
-
2.在centos7.0以后很多服务不再使用
service
,而是systemctl
-
3.service指令管理的服务在
/etc/init.d
查看
-
- service管理指令案例
-
案例:使用service实例查看启动关闭network
- 指令:
service network start|stop|restart
- 指令:
-
-
查看服务名
-
方式1:使用 setup -> 系统服务
指令:setup
-
方式2: /etc/init.d 找到 service指令管理的服务
指令:ls -l /etc/init.d
-
-
服务的运行级别(runlevel)
Linux系统有7种运行级别:常用的级别是3和5
-
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
-
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
-
运行级别2:多用户状态(没有NFS),不支持网络
-
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
-
运行级别4:系统未使用,保留
-
运行级别5:X11控制台,登陆后进入图形UI模式
-
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
-
-
开机的流程说明:
开机 >> BIOS >> /boot >> systemd进程 >> 运行级别 >> 运行级别对应的服务
-
chkconfig指令
-
介绍
- 1.通过chkconfig命令可以给服务的各个运行级别设置 自启动/关闭
- 2.chkconfig 指令管理的服务在 /etc/init.d查看
- 3.在centos7.0以后,很多服务使用systemctl管理
-
基本语法
- 查看服务
chkconfig --list [|grep xxx]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
- 查看服务
-
案例演示
-
对network 服务进行各种操作
chkconfig --level 3 network off
chkconfig --level 3 network on
-
使用细节:
chkconfig
重新设置服务后自启动或关闭,需要重启机器reboot生效。
-
-
- systemctl 管理指令
-
- 基本语法
systemctl [start|stop|restart|status] 服务名
- 基本语法
-
- systemctl 指令管理的服务在
/usr/lib/systemd/system
查看
- systemctl 指令管理的服务在
-
-
systemctl设置服务的自启动状态
-
systemctl list-unit-files [|grep 服务名]
功能描述:查看服务开机启动状态,grep可以进行过滤 -
systemctl enable 服务名
功能描述:设置服务开机启动 -
systemctl disable 服务名
功能描述:关闭服务开机启动 -
systemctl is-enabled 服务名
功能描述:查询某个服务是否是自启动的
- 应用实例:
-
查看当前防火墙的状况,关闭防火墙和重启防火墙
-
systemctl status firewalld
-
systemctl stop firewalld
-
systemctl start firewalld
-
-
-
-
细节
-
- 关闭或者重启防火墙后,立即生效。 【telnet测试 某个端口即可】
-
- 这种方式只是临时生效,当重启系统后,还是回到以前对服务的设置
-
- 如果希望设置某个服务自启动或综合关闭永久生效,要使用
systemctl [enable|disable] 服务名
- 如果希望设置某个服务自启动或综合关闭永久生效,要使用
-
- 打开或者关闭指定端口
- firewall指令
-
打开端口:
firewall-cmd --permanent --add-port=端口号/协议
-
关闭端口:
firewall-cmd --permanent --remove-port=端口号/协议
-
重新载入,才能生效:
firewall-cmd --reload
-
查询端口是否开发:
firewall-cmd --query-port=端口号/协议
-
应用案例
-
1.启用防火墙,测试111端口是否能 telnet
- 不能
-
2.开放111端口
-
firewall-cmd --permanent --add-port=111/tcp
-
需要
firewall -cmd --reload
-
-
3.再次关闭111端口
-
firewall-cmd --permanent --remove-port=111/tcp
-
需要
firewall -cmd --reload
-
-
-
动态监控进程
-
介绍
top与ps命令很相似。它们都用来显示正在执行的进程。top与ps最大的不同之处在于top在执行一段时间可以更新正在运行的进程 -
基本语法
top [选项]
-
选项说明
-d
秒数 功能:指定top命令每隔几秒更新。默认是3秒-i
功能:使top不显示任何闲置或者僵死进程-p
功能:通过指定监控进程ID来仅仅监控某个进程的状态 -
交互操作说明
P
功能:以CPU使用率排序,默认就是此项M
功能:以内存的使用率排序N
功能:以PID排序q
功能:退出top -
应用实例
-
案例1:监视特定用户
top
:输入此命令,按回车键,查看执行的进程u
:然后输入"u"回车,再输入用户名,即可 -
案例2:终止指定的进程
top
:输入此命令,按回车,查看执行的进程k
:然后输入"k"回车,再输入要结束的进程ID号 -
案例3: 指定系统状态更新的时间(每隔10秒自动更新)
top -d 10
-
监控网络状态 (常用指令)
-
查看系统网络情况:
netstat
-
基本语法
netstat 选项
-
选项说明
-an
按一定顺序排列输出-p
显示哪个进程在调用 -
应用案例
查看服务名为sshd的服务的信息
netstat -anp |grep sshd
-
检测主机连接命令ping
是一种网络检测工具,它主要是用于检测远程主机是否正常,或者是两部主机间的网线或者网卡故障
如:
ping 对方ip地址