1.进程的基本介绍
1)在linux中,每个执行的程序都称为一个进程,每个进程都分配一个ID号;
2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程;
3)每个进程都可能以两种方式存在,前台和后台,所谓前台进程就是用户目前的屏幕上可以操作的,后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行;
4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
2.显示系统执行的进程
- 2.1说明:查看进程使用的指令 ps ,一般来说使用的参数是 ps -aux
字段 | 说明 |
---|---|
ps -a | 显示当前终端的所有进程信息 |
ps -u | 以用户的格式显示进程信息 |
ps -x | 显示后台进程运行的参数 |
-
2.2ps指令详解
1)指令:ps -aux | grep xxx
2)指令说明
USER:用户名称
PID:进程id
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存百分比
VSZ:进程占用的虚拟内存大小单位KB
RSS:进程占用的物理内存的大小
TTY:终端名称。缩写
STAT:进程状态,其中s-睡眠,n-表示进程拥有比普通优先级更低的优先级,r-正在运行,d-短期等待,z-僵死进程,t-被跟踪或者被停止等等
STARTED:进程的启动时间
TIME:CUP时间,即进程使用CPU的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截取显示 -
2.3以全格式显示当前所有的进程,查看进程的父进程
ps -ef 是以全格式显示当前所有的进程
-e 显示所有进程 -f 全格式
ps -ef | more
UID:用户id
PID:进程id
PPID:父进程id
C:cpu用于计算执行优先级的因子,数值越大,表明进程是cup密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:cpu时间
CMD:启动进程所用的命令和参数
案例:查查sshd的父进程id是多少
3.终止进程kill 和 killall
-
3.1介绍
若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。 -
3.2基本语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,已支持通配符,这在系统因负载过大而变得很慢时很有用) -
3.3常用选项
-9:表示强迫进程立即停止 -
3.4最佳实践
案例1:踢掉某个非法登录的用户
案例2:终止远程登录服务sshd,在适当时候再次重启sshd服务
案例3:终止多个gedit编辑器
killall gedit
案例4:强制杀掉一个终端
kill -9 终端id
4.查看进程数pstree
-
4.1基本语法
pstree [选项] ,可以更加直观的来看进程信息 -
4.2常用选项
-p :显示进程的PID
-u :显示进程的所属用户 -
4.3应用实例
案例1:请树状的显示进程的pid
案例2:请树状的形式显示用户id
5.服务service管理
5.1介绍
服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(mysql,防火墙,sshd),因此我们又称为守护进程,是linux中非常重要的知识点。5.2service管理指令
service 服务名 [start|restart|strop|reload|status]
在CentOS7.0后不再使用service,而是systemctl-
5.3使用案例
关闭防火墙,启动防火墙,重启防火墙,查看防火墙状态
bash>service iptables stop
bash>service iptables start
bash>service iptables restart
bash>service iptables status
细节说明测试防火墙是否关闭或开启 -
5.4查看服务名称
方式1:在命令行输入 setup指令
方式2:/etc/init.d/ 下面查看服务 -
5.5开机的流程说明
-
5.6 chkconfig 指令
介绍:通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭
基本语法:
1)chkconfig --list | grep xxx
2)chkconfig xxx --list
3)chkconfig --level 运行级别 服务名 on/off
案例:在运行级别5关闭sshd终端服务
5.7应用实例
案例1:请显示当前系统所有服务的各个运行级别的运行状态
bash> chkconfig --list
案例2:请查看sshd服务的运行状态
bash> chkconfig sshd --list
案例3:将sshd服务在运行级别5下设置为不自动启动
bash> chkconfig --level 5 sshd off
案例4:当运行级别是5时关闭防火墙
bash> chkconfig --level 5 iptables off
案例5:在所有运行级别下关闭防火墙
bash> chkconfig iptables off
案例6:在所有运行级别下开启防火墙
bash> chkconfig iptables on
使用细节:chkconfig重新设置服务自动关闭或启动后,需要重启系统reboot才能生效
6.动态监控进程
-
6.1介绍
top和ps命令很相识,他们都是用来显示正在执行的进程,Top与ps最大的不同之处,在于top在执行的时候可以更新正在运行的进程 -
6.2基本语法
top [选项] - 6.3选项说明
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每个几秒更新,默认是3秒在top命令的交互模式当中可以执行的命令 |
-i | 使top不显示任何闲置或者僵死的进程 |
-p | 通过指定监进程id来仅仅监控某个进程的状态 |
交互操作说明:
操作 | 功能 |
---|---|
p | 以cup使用率排行,默认就是此项 |
m | 以内存的使用率排行 |
n | 以pid排序 |
q | 退出top |
-
6.4应用实例
案例1:监视特定用户
top:输入此命令,按回车键,查看执行进程
u:然后输入“u”回车,再输入用户名,即可
案例2:终止指定的进程
top:输入此命令,按回车键,查看执行的进程
k:然后输入“k”回车,再输入要结束的进程id号
案例3:指定系统状态更新的时间(每隔10秒自动更新,默认是3秒)
bash > top -d 10 -
6.5查看系统网络情况netstat
- 基本语法:
netstat [选项]
netstat -anp - 选项说明
-an 按一定顺序排序输出
-p 显示哪个进程在调用 -
应用案例
案例1:查看系统所有的网络服务:
案例2:请查看服务名为sshd的服务的信息
- 基本语法: