目录
(5)chkconfig指令:给服务的各个运行级别设置自 关闭/启动
一、基本介绍
(1)每个执行的程序,都被成为一个进程,每个进程都分配一个ID号(pid,进程号)
(2)每个进程都可能以两种方式存在:前台和后台。
前台:用户屏幕上可以操作的进程
后台:实际在操作,但是屏幕上无法看到的进程
(3)一般系统的服务都是以后台进程的方式存在
二、进程管理常用指令
(1)显示系统执行的进程
ps [选项]
-a:显示当前终端的所有进程
-u:以用户的格式显示进程信息
-x:显示后台进程运行的参数
-e:显示所有进程
-f:全格式
查询的结果都代表什么意思?
USER:进程执行用户
PID: 进程号
%CPU:占用CPU的百分比
%MEN:占用物理内存的百分比
VSZ:占用虚拟内存的大小
RSS:占用物理内存大小
TTY:终端
STAT:运行状态,s表示sleep休眠,r表示运行状态
START:进程的启动时间
TIME:占用的cpu时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
(2)终止进程指令:kill和killall
#通过进程号杀死进程
kill [选项] 进程号
#通过进程名称杀死进程,支持通配符
killall 进程名称
-9:强迫进程立刻停止
(3)查看进程树
pstree [选项]
-p:显示进程的PID
-u:显示进程的所属有用户
三、服务管理
服务本质就是进程,也叫守护进程。但是是运行在后台的,通常会用于监听某个端口,等待其他的请求。
(1)服务管理指令
#服务的管理
service 服务名 [start | stop | restart | reload | status]
#查看service指令管理的服务
在/etc/init.d查看
在CentOS7后,很多服务不再使用service,而是systemctl。
实例:使用service指令,查看,关闭,启动network
这边一旦执行stop,xshell就用不了了
(2)查看服务名
#方法一:查看所有系统服务
set
#方法二:查看service指令管理的服务
ls -l /etc/init.d
带*表示随着系统启动,自动启动。不带就需要手动启动。
怎么修改是否加*?选择那一行,按一下空格就行
按tab键可以退出
(3)服务的运行级别
linux有7种运行级别,最常用的是3和5:
级别0:系统停机状态,系统默认运行级别不能设置成0
级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
级别2:多用户状态(没有NFS),不支持网络
级别3:完全的多用户状态(有NFS),登录后进入控制台命令模式
级别4:系统未使用,保留
级别5:X11控制台,登录后进入图形GUI模式
级别6:系统正常关闭并重启,默认运行级别不能设置成6
multi-user.target对应级别3
graphical.target对应级别5
#获取默认级别
systemctl get-default
#设置默认级别
systemctl set-default 上述级别对应的英文
(4)linux开机的流程
开机=》BIOS=》/boot=》运行第一个进程,systemd进程1=》确定运行级别=》运行级别对应的服务
(5)chkconfig指令:给服务的各个运行级别设置自 关闭/启动
自 关闭/启动:上述我们说了有7个级别,我们可以设置某个服务在具体某个级别是启动的还是关闭的
#chkconfig指令管理的服务在/etc/init.d中可以查看
#在Cento7以后,很多服务使用systemctl管理
#修改后需要重启
#查看chkconfig指令管理的服务
chkconfig --list [|grep xxx]
#设置某个服务在5级别下开启/关闭
chkconfig --level 5 服务名 on/off
四、systemctl管理指令
在Cento7以后,很多服务使用systemctl管理。
(1)基本指令
#systemctl指令管理的服务在/usr/lib/systemd/system查看
systemctl [start | stop | restart | status] 服务名
启动,关闭只是临时生效,要想永久生效:
systemctl [enable | disable] 服务名
(2)systemctl设置服务的自启动状态
#查看服务器开机启动状态,grep 用于过滤
systemctl list-unit-files [| grep xxx ]
#设置服务开机启动
systemctl enable 服务名
#关闭服务开机启动
systemctl disable 服务名
#查询某个服务是否是自启动的
systemctl is-enabled 服务名
#查看服务当前状态
systemctl status 服务名
(3)打开或关闭指定端口
#查看是否连接得上
telnet ip地址 端口号
#打开端口
firewall-cmd --permanent --add-port=端口号/协议
#关闭端口
firewall-cmd --permanent --remove-port=端口号/协议
#重新载入才能生效
firewall-cmd --reload
#查询端口是否开放
firewall-cmd --query-port=端口号/协议
#查看端口情况
netstat -anp | more
我们先打开防火墙,然后cmd里面连接是连不上的:
我们打开111端口,并且查询一下,并且重新连接:
我们telnet 192.168.200.130 111就可以了。
关闭同理。
五、动态监控进程
(1)top指令:显示正在执行的进程
top与ps命令很像,都是显示正在执行的进程。区别在于:top在执行一段时间可以更新正在运行的进程。
top [选项]
-d 秒数:指定top命令每隔多少秒更新,默认3秒
-i:使top命令不显示任何闲置或者僵尸进程
-p:通过指定监控进程ID来仅仅监控某个进程的状态
#交互操作说明:top后,输入以下指令自定义查看(注意大小写)
P:以CPU使用率排序,默认就是此项
M:以内存使用率排序
N:以PID排序
u:查看用户的进程情况。输入u后按回车,再输入用户名即可。
k:结束指定进程。输入k后按回车,再输入要结束的进程ID即可。再输入9强制删除
q:退出top
我们解释一下这些是什么意思:
1:当前时间。 2:系统使用了多久。 3:系统有多少用户。 4:系统使用情况,负载值。(如果超过70%就要注意了)
Tasks:任务情况,其中zombie表示僵尸进程,所谓僵尸进程就是该进程已经死了,但是么有释放
%Cpu:CPU使用情况。us:用户占用的cpu。 sy:系统占用的cpu。 id:空闲的cpu。
KiB Mem:内存占用情况。total:总共的内存。 free:未使用。 used:已使用。 buff/cache:缓存大小
KiB Swap:交换分区情况。
(2)netstat指令:查看系统网络情况
netstat [选项]
-an:按一定顺序排列输出
-p:显示哪个进程在调用
1:协议。 2:本地地址。 3:外部地址
所谓本地地址对应的是linux系统里的地址。外部地址对应的是windows系统里的地址。
如果我们用xshell连接linux就会有另外一个连接,当我们断开连接,状态会先从ESTABLISHED变成TIME_WAIT。过一会才会消失。
(3)测试主机连接指令:ping
是一种网络连接检测工具,主要用于检测远程主机是否正常。
ping IP地址