进程管理
概述
1、在 Linux 中,每一个执行的程序都被称为一个进程,每一个进程都被分配一个 PID(进程号)
2、每个进程都可能以两种方式存在:前台、后台
(1)前台进程:用户目前屏幕上可以进行操作
(2)后台进程:实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
3、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才会结束
ps 选项
1、查看目前系统中,正在执行的进程 ,以及执行状况,可以不加任何参数
2、选项
(1)-a:显示当前终端的所有进程信息
(2)-u:以用户格式显示进程信息
(3)-x:显示后台进程运行的参数
(4)-e:显示所有进程
(5)-f:以全格式显示进程信息
3、用户格式显示字段信息
(1)USER:进程执行用户
(2)PID:进程号
(3)CPU:当前进程占用 CPU 百分比
(4)MEM:占用物理内存的百分比
(5)VSZ:进程占用虚拟内存大小(KB)
(6)RSS:进程占用的物理内存大小(KB)
(7)TTY:终端名称
(8)STAT:运行状态,S- 表示 sleep 休眠、s- 表示该进程是会话的先导进程,N- 表示进程拥有比普通优先级更低的优先级,R- 表示正在运行,D- 短期等待,z- 僵尸进程,T- 被跟踪或者被停止
(9)STARTED:执行的开始时间
(10)TIME:此进程所占用 CPU 时间
(11)COMMAND:进程名,启动进程所用的命令和参数,如果过长会被截断显示
4、全格式显示字段信息
(1)UID:用户 ID
(2)PID:进程 ID
(3)PPID:父进程 ID
(4)C:CPU 用于计算执行优先的因子,数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
(5)STIME:进程启动时间
(6)TTY:完整的终端名称
(7)TIME:CPU 占用时间
(8)CMD:启动进程所用的命令和参数
终止进程
1、kill 选项 进程号
(1)通过 PID 终止进程
(2)-9:表示强迫进程立即停止
2、killall 进程名称
(1)通过进程名终止多个进程
(2)支持通配符
查看进程树
1、更直观查看进程信息
2、pstree 选项
(1)-p:树状形式显示进程 PID
(2)-u:树状形式显示进程的所属用户
服务管理
1、服务本质是进程,但在后台运行,通常都会监听某个端口,等待其他程序的请求,如:mysqld,sshd 防火墙等,又称为守护进程
2、以 d 结尾的服务
(1)d 代表 deamon,守护进程
(2)Linux 大多数服务为守护进程
(3)守护进程运行在 Linux 服务器后台的一种服务程序,周期地执行某种任务,或等待处理某些发生的事件,如:xinetd 提供网络服务,sshd 提供 ssh 登录服务,httpd 提供 web 服务
3、七种运行级别(runlevel)
(1)运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
(2)运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登录
(3)运行级别 2:多用户状态(没有 NFS),不支持网络
(4)运行级别 3:完全的多用户状态(有 NFS),登录后进入控制台命令行模式
(5)运行级别 4:系统未使用,保留
(6)运行级别 5:X11 控制台,登陆后进入图形 GUI 模式
(7)运行级别 6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动
(8)常用级别:3、5
4、开机流程:开机 -> BIOS -> /boot -> systemd 进程1 -> 运行级别 -> 运行对应服务
5、CentOS 7 运行级别,在 /etc/initab,进行如下简化
(1)multi-user.target:类似运行级别 3
(2)graphical.target:类似运行级别 5
(3)systemctl get-default:查看默认运行级别
(4)systemctl set-default TARGET.target:设置默认运行级别
service 服务名 选项
1、start:开启服务
2、stop:停止服务
3、restart:重启服务
4、reload:重载服务
5、status:查看服务状态
6、CentOS 7.0 后很多服务不再使用 service,而使用 systemctl
7、在 /etc/init.d 查看 service 指令管理的服务
setup
1、系统服务:查看所有服务
2、带 * 号为自启动服务,不带 * 号为需要手动启动的服务
3、空格键,指定服务是否自启动
4、Tab 键:退出
chkconfig 选项 系统服务
1、--add:增加所指定的系统服务,让 chkconfig 指令得以管理它,并同时在系统启动的叙述文件内增加相关数据
2、--del:删除所指定的系统服务,不再由 chkconfig 指令管理,并同时在系统启动的叙述文件内删除相关数据
3、--list:列出 chkconfig 所知道的所有服务,在各运行级别情况
4、--level 等级代号 on | off | reset:指定系统服务要在哪一个执行等级中开启或关闭
5、chkconfig 重新设置服务后自启动或关闭,需要重启机器 reboot 生效
6、CentOS 7.0 后,很多服务使用 systemctl 管理
systemctl 选项 服务名
1、start:开启服务
2、stop:停止服务
3、restart:重启服务
4、status:查看服务状态
5、list-unit-files:查看服务开机启动状态,使用过滤:| grep 服务名
6、enable:开启服务开机启动
7、disable:关闭服务开机启动
8、关闭、开启都是默认 3、5 级别
9、is-enabled 服务名:查询某个服务是否是自启动的
10、在 /usr/lib/systemd/system 查看 systemctl 管理的服务
firewall
1、无论是关闭,还是开启端口,都需要重新载入防火墙才能生效
(1)firewall-cmd --permanent --add-port=端口号/协议:开启端口
(2)firewall-cmd --permanent --remove-port=端口号/协议:关闭端口
(3)firewall-cmd --reload:重载防火墙
2、firewall-cmd --query-port=端口/协议:查询端口是否开放
3、telnet IP 端口号:测试目的主机的端口号是否开放
top 选项
1、top 和 ps 相似,都显示正在执行的进程,最大不同:top 在执行一段时间,可以更新正在运行的进程
2、僵死进程:进程运行结束,但没有释放内存
(1)僵死进程需要定时清除
(2)CPU 使用率、KiB Mem(内存管理)最重要
3、选项
(1)-d 秒数:指定 top 每隔几秒更新,默认 3 秒
(2)-i:不显示任何闲置,或僵死进程
(3)-p:指定监控进程 ID,监控某个进程状态
(4)-n 次数:更新指定次数后,退出 top
4、交互操作
(1)P:以 CPU 使用率排序(默认)
(2)M:以内存使用率排序
(3)N:以 PID 排序
(4)q:退出 top
(5)u:输入用户名,监视特定用户
(6)k:输入 PID,终止指定 PID 进程
netstat 选项
1、显示网络状态
2、-a 或 --all:显示所有连线中的 Socket
3、-A 网络类型 或 --网络类型:列出该网络类型连线中的相关地址
4、-c 或 --continuous:持续列出网络状态
5、-C 或--cache:显示路由器配置的快取信息
6、-e 或 --extend:显示网络其他相关信息
7、-F 或 --fib:显示路由缓存
8、-g 或 --groups:显示多重广播功能群组组员名单
9、-h 或 --help:显示帮助
10、-i 或 --interfaces:显示网络界面信息表单
11、-l 或 --listening:显示监控中的服务器的Socket
12、-M 或 --masquerade:显示伪装的网络连线
13、-n 或 --numeric:直接使用 IP 地址,而不通过域名服务器
14、-N 或 --netlink 或 --symbolic:显示网络硬件外围设备的符号连接名称
15、-o 或 --timers:显示计时器
16、-p 或 --programs:显示正在使用 Socket 的程序识别码和程序名称
17、-r 或 --route:显示 Routing Table
18、-s 或 --statistics:显示网络工作信息统计表
19、-t 或 --tcp:显示 TCP 传输协议的连线状况
20、-u 或 --udp:显示 UDP 传输协议的连线状况
21、-v 或 --verbose:显示指令执行过程
22、-V 或 --version:显示版本信息
23、-w 或 --raw:显示 RAW 传输协议的连线状况
24、-x 或 --unix:此参数的效果和指定 -A unix 参数相同
25、--ip 或 --inet:此参数的效果和指定 -A inet 参数相同
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战