目录
8 systemctl管理指令---功能最大强的指令--最重点!!!
一 基本介绍
(1)在linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号,也就是pid也叫进程号
查看windows的任务管理器
程序一旦执行,就会加载到内存中,成为进程
(2)每个进程都可能以两种方式存在----前台与后台。
所谓前台进程,就是用户目前的屏幕上可以进行操作。
后台进程是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
比如qq发送消息,前台是两个用户在发送消息,后台其实是两个用户通过服务器来发送消息,后台的部分前台看不见
(3)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中直到关机才结束,比如tomcat,mysql
二 Linux显示系统执行的进程
1 基本介绍
PS指令是用来查看目前系统中有哪些正在执行的进程,以及他们执行的状况,可以不加任何参数,不加任何参数,显示的信息会比较少
常见选项如下:
ps -a:显示当前终端所有的进程信息
ps -u:显示进程的归属用户及内存使用情况
ps -x:显示没有关联控制终端的进程
一般会aux组合使用
2 ps 详解
(1)指令
ps -aux 详细显示所有进程信息
ps -aux | more 分页详细显示所有进程详细信息
ps -aux | grep sshd 过滤 只显示sshd进程的信息
注意这里出现了三条信息,只有第一条是sshd进程的信息,第二条是shell登录到sshd的指令,第三条是输入的 ps -aux | grep sshd 指令
(2)指令说明---很重要,要看懂
USER:用户名称
PID:进程号
%CPU:进程占用cpu的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小,单位KB
RSS:进程占用的物理内存大小,单位KB
TTY:终端名称,缩写
STAT:进程状态,其中S-睡眠,s-该进程是会话的先导进程,N-进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
注意,僵死进程表示进程可能已经结束了但是内存还没释放,这种僵死进程需要定时进行清除
START :进程的启动时间
TIME:CPU时间,也就是进程使用C P U的总时间
COMMAND:启动进程所用的命运和参数,如果过长会截断显示
3 应用实例ps -ef | grep sshd
要求:以全格式显示当前所有的进程,查看进程的父进程。(linux一个进程可以创建多个子进程)
查看sshd的父进程信息
ps -ef是以全格式显示当前所有进程
-e 显示所有进程 -f全格式
以全格式显示sshd进程指令:
可以看出sshd的进程号是7761,sshd的父进程是的进程号是1,ps -aux | more 可以查看所有进程,找到进程号是1的systemd,也就是说,系统先启动了1号进程systemd,这是系统的一个后台进程,1号进程又生成了进程号为7761的子进程sshd
ps -ef | more 可以查看父进程号信息,0表示自己没有父进程,是系统启动的第一个进程
三 终止进程kill和killall -9
1 介绍
若是某个进程执行一半需要停止,或是已经消耗了很大的系统资源的时候,可以考虑停止该进程。使用kill命令,来完成此项任务
2 基本语法
kill 选项 进程号 通过进程号杀死/终止进程
killall 进程名 通过进程名称杀死进程,也支通配符,这在系统因负载过大而变的很慢时很有用
killall 杀死进程的时候,这个进程的子进程也会被杀死
3 常用选项-9
-9:表示强迫进程立即停止 这个指令是因为系统为了保护自己经常忽略kill指令,这时候需要终止进程的时候就需要-9指令了
4 最佳实践
案例1:踢掉某个非法登录用户
kill 进程号,比如kill 15090
步骤1:xshell登录tom
步骤2:在虚拟机终端查看tom登录的进程号,指令ps -aux | grep sshd,可以看出进程号为15090,注意不是15094
步骤3:现在在虚拟机终端输入指令kill 15090,会发现xshell会自动退出tom登录
案例2:终止远程登录服务sshd,在适当的时候再次重启sshd服务(sshd服务启动之后,其他用户才能远程登录客户端,一旦终止sshd用户就无法登录了)
kill sshd 对应的进程号
步骤1:查看sshd进程号 指令:ps -aux | grep sshd
步骤2:kill 10748
步骤3:再次查询ps -aux | grep sshd,发现sshd进程已经没有了,也就是现在无法远程登录
这时就不能再用xshell远程登录了
如果想要远程登录,需要重启sshd服务,指令为 /bin/systemctl start sshd.service
重启后再次ps -aux | grep sshdff发现sshd进程又启动了,且进程号变了
现在双击xshell会话发现又可以远程登录了
案例3:终止多个gedit,演示 killall gedit
步骤1:用文本编辑器打开两个文件,开启gedt进程
步骤2:在终端输入killall gedit,可以看出指令执行后文本编辑器自动关闭,两个子进程也关闭了
案例4:强制杀掉一