1. 进程的基本介绍
- 在Linux中,每个执行的程序(代码)都被称为一个进程.每个进程都有对应的一个ID号
- 每个进程都会对应一个父进程,而父进程可以复制多个子进程
- 每个进程都可能以前台和后台两种方式存在.前台进程就是目前用户在页面上能进行的操作,后台进程是实际在进行的操作,但由于屏幕上无法看到,一般在后台运行
- 一般系统的服务都是以后台进程方式存在,而且都会常驻在系统之中.直到关机才结束
2. 显示系统执行的进程
使用ps -aux命令查看系统执行的进程
参数说明:
- -a 显示当前终端所有用户进程信息
- -u 显示用户
- -x 显示后台进程运行参数
- -f 以全格式显示
- -e 效果与-a相同
每一列的含义:
- USER 用户
- PID 进程的id
- %CPU 占用的CPU
- %MEM 占用的内存
- VSZ 使用的虚拟内存情况
- RSS 使用的物理内存情况
- TTY 使用的终端
- STAT 进程的状态,其中几个常见的(R 运行、S休眠、I 空闲)
- START 进程启动事件
- TIME 占用CPU的总时间
- COMMAND 进程执行时的命令行
使用 ps -ef 命令可查看父进程
每一列的含义:
- UID 用户
- PID 进程的id
- PPID 父进程的进程号(如果该进程是由另一个进程启动的)
- C 进程生命周期中的CPU利用率
- STIME 进程启动的时间
- TTY 使用的终端
- TIME 占用CPU的总时间
- CMD 启用进程所用的命令和参数
3. 终止进程命令以及案例演示
- kill -9 进程号 通过进程号强制终止进程
- killall 进程名称 通过进程名称终止进程(支持通配符)
案例1: 踢掉某个非法登录的用户
先查询到这个用户的进程号,然后使用kill通过进程号终止进程,将用户踢出
案例2: 终止远程连接sshd服务,然后重启此服务
同理,先查询到ssdh服务的进程号,然后kill终止.此时在使用xhell等远程工具,将不能在远程连接到服务器.
PS: 可以通过 service ssdh start 来重新启动服务,CentOS7之后是使用systemctl ssdh start
案例3: 以树形结构查看进程
我们可以通过 pstree 命令查看进程树,这样进程之间的关系一目了然. 其中 -p 参数表示显示进程号, -u 显示用户名
3. 服务管理
服务管理基本语法:
- service 服务名 [start | stop | restart | reload | status]
应用实例: 查询防火墙状态,关闭防火墙然后重启防火墙
PS: 防火墙的服务为iptables CentOS7则是使用 systemctl status firewalld
查看所有服务名基本语法
- ls -l /etc/init.d/
应用实例: 列出系统目前有哪些服务
修改服务的运行级别
服务的运行级别包括一下7种:
- 0: 系统为停机状态,系统的默认运行级别不能设置为0,否则无法正常启动
- 1: 单用户状态,root权限,用于系统维护.不能远程登录
- 2: 多用户状态(无NFS)
- 3: 多用户状态(有NFS),登陆后进入控制台命令行模式
- 4: 系统保留,未使用
- 5: 图形化界面模式,登陆后进入图形化界面
- 6: 系统正常关闭并重启,系统默认运行级别不能设置为6,否则无法正常启动
应用实例: 修改系统默认运行级别为5
在Linux中每个服务的各个运行级别的是否自启动不同,我们可以设置每个服务的各个运行级别是否开机自启,命令如下 =>图片截自此博文<=:
动态监控进程的变化
基本语法:
- top
常用参数:
- -d 秒数: 指定秒数刷新进程状态,默认为3秒
- -i : 不显示闲置或者僵死状态的进程
- -p id: 根据进程id来监控指定进程的状态
交互命令(在top命令执行时,可进行的操作):
- P: 以cpu使用率进行排序(默认)
- M: 以内存使用率进行排序
- N: 以PID进行排序
- q: 退出top状态
- u 用户名: 查询指定用户的进程
- k 进程号: 结束指定进程
数据说明:
- top: 14:28:04(系统当前时间), (2:30)系统使用时间, (5 users)用户数量, load average(平均负载),0.58 5.93 20.63(一分钟,五分钟,十五分钟的平均负载)
- task: 314 total(所有进程数), 1running(运行状态进程数), 313sleeping(休眠状态进程数),0stopped(停止进程数),0zombie(僵死进程数)
- %Cpu(s): 2.0 us(用户占用cpu比例), 0.6 sy(系统占用), 97.4 id(空闲)
- KiB Mem: 物理内存使用情况
- KiB Swap: 虚拟内存使用情况
网络状态监控
基本语法:
- netstat [参数]
参数说明:
- -an: 按一定的顺序排列显示
- -p: 显示哪个进程在待用
应用实例: 查看sshd的服务信息
PS: 我们可以在Windows中使用 telnet ip 端口 来查询端口是否在监听状态