一.进程简述及其状态
-
描述1
1) 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。 2) 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。 3) 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。 后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。 4) 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束
-
进程及其状态
Linux是一个多用户、多任务的操作系统。各种资源都以进程为单位进行管理。 简单说来,进程就是程序的一次执行过程。多个进程相互制约、相互依赖,呈现并发、动态及互相制约等特征。 进程至少要有三种基本状态。这三种基本状态是:运行态、就绪态和封锁态(或等待态)。 运行态进程数小于CPU数目 进程的状态可依据一定的条件和原因而变化
二.显示系统执行的进程
-
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。 可以不加任何参数
2. ps详解1) 指令:ps –aux|grep xxx ,比如我看看有没有sshd服务 2) 指令说明 • System V展示风格 • USER:用户名称 • PID:进程号 • %CPU:进程占用CPU的百分比 • %MEM:进程占用物理内存的百分比 • VSZ:进程占用的虚拟内存大小(单位:KB) • RSS:进程占用的物理内存大小(单位:KB) • TTY:终端名称,缩写 . • STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通 优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等 • STARTED:进程的启动时间 • TIME:CPU时间,即进程使用CPU的总时间 • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
例图:
3. 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:启动进程所用的命令和参数
4. 终止进程kill和killall
kill [选项] 进程号(功能描述:通过进程号杀死进程) -9 :表示强迫进程立即停止 killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符, 这在系统因负载过大而变得很慢时很有用) 常用选项: 最佳实践: 案例1:踢掉某个非法登录用户 案例2: 终止远程登录服务sshd, 在适当时候再次重启sshd服务 案例3: 终止多个gedit 编辑器 案例4:强制杀掉一个终端
5. 查看进程树pstree
基本语法: pstree [选项] ,可以更加直观的来看进程信息 常用选项: -p :显示进程的PID -u :显示进程的所属用户
三 服务
介绍:
-
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程 序的请求,比如(mysql , sshd,防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。
-
service管理指令:
service 服务名 [start | stop | restart | reload | status] 在CentOS7.0后 不再使用service ,而是 systemctl
systemctl转载的链接:
这个博客也有详细的描述
其中[start | stop | restart | reload | status] 这些状态的改变 在 systemctl也一样使用 -
systemctl(以后尽量用这个, service也可以用)
停止防火墙——systemctl stop firewalld.service 查看firewalld防火墙状态——firewall-cmd --state 禁止防火墙开机启动——systemctl disable firewalld.service 列出正在运行的服务状态——systemctl 启动一个服务——systemctl start postfix.service 关闭一个服务——systemctl stop postfix.service 重启一个服务:——systemctl restart postfix.service 显示一个服务的状态——systemctl status postfix.service 在开机时启用一个服务——systemctl enable postfix.service 在开机时禁用一个服务——systemctl disable postfix.service 查看服务是否开机启动——systemctl is-enabled postfix.service 查看已启动的服务列表——systemctl list-unit-files|grep enabled 更详细的看上面转载的链接
-
动态监控进程
介绍top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top 在执行一段时间可以更新正在运行的的进程。 基本语法: top [选项] 选项说明: 选项 功能 -d 秒数 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的 命令: -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 的服务的信息。 --网络篇有 检测主机连接命令ping: 是一种网络检测检测工具,它主要是用检测远程主机是否正常,或是两部主机间 的介质是否为断、网线是否脱落或网卡故障。 如: ping 对方ip地址
这个图是尚硅谷的,你也可以自己改