linux 进程管理浅谈

it2023-03-16  81

**什么是进程?

程序(program)放置在存储媒体中(如硬盘,光盘,软盘,磁带等)为实体文件的形态存在

进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行的程序

进程的状态: R(Running):该程序正在运行中; S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal) D:不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况。 T:停止状态(stop),可能是在工作控制(背景暂停)或除错(traced)状态; Z(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外**

1.进程的查看命令

ps -A ##所有进程 ps -a ##在当前用户环境运行的程序,不包含环境信息 ps -u ##显示进程用户信息 ps a ##在当前环境中运行的进程 ps x ##列出系统中所有运行包含tty输出设备 ps f ##显示进程的所属关系(父子关系) ps e ##显示进程的详细信息(系统资源的调用) ps常用组合 ps aux ##显示系统中的所有进程 ps ef ##显示进程详细信息并显示父子进程 ps ax ##显示当前系统的所有进程 pstree ##显示当前进程的进程树显示进程的指定信息 ps -o xxx ##显示进程的指定信息 comm ##进程名称 user ##进程所有人 group ##进程所有组 %cpu ##进程cpu使用率 %mem ##进程内存使用率 pid ##进程pid nice ##进程优先级

2.进程排序

ps ax --sort= +%cpu|-%cpu +%mem|-%mnm stat中显示的信息 S ##进程状态 l ##内存中有锁定空间 N ##优先级低 < ##优先级高 + ##前台运行 s ##顶级进程

3.进程优先级

1.进程的优先级范围-20~19

2.优先级的查看 ps ax -o pid,nice,comm3.指定优先级 nice -n 优先级数字 进程名称 修改优先级 renice -n 数字 进程的id

环境中进程的前后台调用 jobs ##查看被打入环境后台的进程 ctrl+z ##把占用终端的进程打入后台 fg jobsnum ##把后台进程调回前台 bg jobsnum ##把后台暂停的进程运行 comm & ##让命令直接在后台运行

4.进程信号

常用信号等级 1 ##进程重新加载配置 2 ##删除进程在内存中的数据 3 ##删除鼠标在内存中的数据 9 ##强行结束单个进程(不可被阻塞) 15 ##正常关闭进程(可能被阻塞) 18 ##运行暂停的进程 19 ##暂停某个进程(不可被阻塞) 20 ##把进程打入后台(可以被阻塞) man 7 signal ##查看信号的详细信息 kill -信号 进程的pid 注意,在这里kill-15可能无法结束掉比较重要的进程,如bash

killall -信号 进程的名字 pkill -u student -信号 切换到普通用户关闭vim同时关闭student的shell

5.进程的动态监控

top 常用的如下:

##显示cpu每个核的负载 s ##调整刷新频率 c ##cpu负载排序 m ##内存使用量排序 h ##查看帮助 u ##查看指定用户进程 k ##对指定进程发起信号 q ##退出

6.控制服务

服务:cs模型: c:client s:server 定义:系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件,简称服务

reloda=kill -1,但是有些服务没办法reload,例如网络服务

远程控制命令: systemctl status sshd ##查看服务状态,inactive(不可用)active(可用) systemctl start sshd ##开启服务 systemctl stop sshd ##关闭服务 systemctl restart sshd ##重起服务 systemctl reload sshd ##重新加载服务配置(同kill-1相同) systemctl enable sshd ##设定服务开机启动 systemctl disable sshd ##设定服务开机不启动 systemctl list-units ##列出已经开启服务当前当前状态 systemctl list-unit-files ##列出所有服务开机启动的状态 disable,enable,static systemctl list-dependencies ##列出服务的依赖 systemctl mask sshd ##冻结服务 systemctl unmask sshd ##解冻服务 systemctl set-default multi-user,target ##设定系统后启动级别为多用户模式(无图形) systemctl set-dafault graphical,target ##设定系统启动级别为图形模式

如图,在这里sshd服务时正在运行的

最新回复(0)