1.程序:一组计算机能识别和执行的指令。用于描述进程要完成的功能,是控制进程执行的指令集。保存在硬盘,光盘等介质的可执行代码和数据。
一组能完成特定功能的指令集合。
进程: 运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位。
动态执行的代码。进程是已启动的可执行的运行实例,组成:已分配的地址空间,安全属性,有权限限制,一个或多个线程。
父进程子进程 :每个进程有唯一的ID PID 任何进程都可以创建子进程。所有进程都是第一个系统进程的后代。父进程复制自己的地址空火箭创建一个新的子进程结构。
2.进程特征:
动态性:进程是程序的一次执行过程,是临时的,有生命期,是动态产生,动态消亡。
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是系统进行资源分配和调度的一个独立单位
结构性:进程由程序,数据和进程控制块三部分组成
僵尸进程:
当子进程比父进程先结束,而父进程又没有收回子进程,释放子进程占用的资源。子进程就成为一个僵尸进程。
线程:
操作系统能进行调度的最小单位。
查看进程:
UNIX: ps -ef
GNU: ps—help
BSD: ps aux ps -le
· a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。
· u:使用以用户为主的格式输出进程信息。
· x:显示当前用户在所有终端下的进程信息。
· -e:显示系统内的所有进程信息。
· -l:使用长(Long)格式显示进程信息。
· -f:使用完整的(Full)格式显示进程信
作者:聂鲁达的邮差
链接:https://juejin.cn/post/7071297250944614437
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
按CPU占比升序排列,ps aux --sort=%cpu。
按内存占比降序排列,ps aux --sort=-%mem
Top: 动态查看进程
top -d 10 -n 5 //每10秒刷新一次,只执行5次,刷新5次后自动退出
· -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒。
· -b:使用批次处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中。
· -n 次数:指定 top 命令执行的次数。一般和"-"选项合用。
· -p 进程PID:仅查看指定 ID 的进程。
· -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误。
· -u 用户名:只监听某个用户的进程。
Pgrep 查询进程PID
- -U:指定用户
- -l:显示进程名
- -a:显示完整格式的进程名
- -P < PID>:显示指定进程的子进程
Prtstat 查看指定进程
Pstree 树形结构列出进程信息
· -a:显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。
· -p:显示PID。
· -p < pid> : 显示指定进程及其子进程,同时显示每个进程的PID。
· -u:显示进程的用户名称。
· -u 用户名:显示指定用户的进程。
· -H < pid>:高亮显示指定进程及其前辈进程。
· -T:不显示线程thread,默认显示线程。
Lsof 列举被打开的文件
List opened files
Vmstat 监控系统资源
vmstat [-a] [刷新延时 刷新次数]
-f,显示从启动到目前为止,
-S 单位,令输出的数据按指定单位显示
-d,列出硬盘有关读写总量的统计表
-s,显示内存相关统计信息及多种系统活动数量。
-p 分区设备文件名,查看硬盘分区的读写情况
启动进程:
Sleep 系统睡眠
Sleep 700 & 进程放到后台运行
& //在命令行尾加入“&”符号,把命令放到后台执行。 Ctrl+Z 组合键 //将当前进程挂起,即调入后台并停止执行。 jobs //查看处于后台的任务列表。 fg 任务序号 //将后台进程恢复到前台运行,可指定任务序号。 bg 任务序号 //将一个在后台暂停的任务,变成继续执行。
进程优先级设置:
- PRI (最终值) = PRI (原始值) + NI NI 范围是 -20~19。
Nice命令:
nice -n 优先级 命令
更改现有nice级别:renice
renice -n 优先级 -p PID //修改现有进程的nice级别
结束进程:
Kill
0EXIT程序退出时收到该信息。1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。3QUIT退出。键盘退出使用 "Ctrl+\ "。9KILL杀死进程,即强制结束进程。11SEGV段错误。15TERM正常结束进程,是 kill 命令的默认信号。18CONT继续。19STOP暂停。
Killall:通过程序名杀死一类进程 与ps pstree等配合使用。
killall [选项] [信号] 进程名
pkill:与killall同
pkill [信号] 进程名
pkill [-U 用户名] 进程名
pkill [-t 终端号] 进程名
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
计划任务管理:
At:一次性任务设置
at [选项] [时间]
使用now+时间,设置任务。
atq查询at任务列表,atrm删除at任务。
Crontab 周期性任务设置
使用crontab -e 编辑计划任务。每月1日备份文件
静态查看:ps aux,ps -elf
动态查看:top
pgrep 根据特定条件查询进程信息
pgrep -l -u
查看指定进程:prtstat
以树形结构列出对应用户所有完整进程号:pstree
列举被打开的文件:lsof
监控系统资源:vmstat、iostat
发现僵尸进程(状态为Z)一定要杀掉。
“cat /proc/PID/status" 可以查看指定进程具体有几个线程。
2、控制进程
后台启动:
命令行尾加”&“符号。
前后台调度:
ctrl+z 挂起当前进程,放到后台,并停止运行
jobs查看任务列表 -l
fg 序号,将后台暂停的进程恢复执行状态。
bg 序号,将前台进程调到后台运行。
修改优先级:
nice,启动程序时设置优先级。
renice,修改现有进程的优先级。
杀死进程:
kill [信号] PID -9
killall 进程名
pkill [信号] [-U 用户名]
pkill [信号] [-t 终端名]
3、计划任务管理
at一次性任务设置
at [HH:MM] [yyyy-mm-dd]:设置一次性任务,按ctrl+d 提交任务。
atq :查看at任务。
atrm:删除at任务。
crontab周期性计划任务设置 月初系统巡检
crontab -e:编辑计划任务。默认root用户
crontab -l:查看计划任务。
删除 contab -r 清空所有
时间格式:分、时、日、月、周几(0 1 都表示周日)。 可以查看cat /etc/crontab 文件。
*表示任意。
,表示多个不连续的时间点。
-表示连续的时间范围。
/表示频率。
命令要使用绝对路径。
6个选项(时间+任务)都不能为空,必须填写
程序:保存在硬盘中的可执行代码和数据
进程 :运行的代码
线程:真正执行的代码
启动进程:先启动父进程再子进程 父给子资源
结束进程:先结束子进程收回资源后再结束父进程
僵尸进程
tty 表示从那个终端起的 ? 表示不是从终端起的
T后台 D不可中断的休眠 S休眠 R runing Z 僵尸进程
PPID 父进程ID NI 谦让度值 决定优先级
PRI 进程优先级 默认80
僵尸进程一般因为手动杀
根据进程号使用管道服务查找
ps -elf | grep 3485
top:
1 5 15
us 用户 id 空闲 wa hi一分钟之内 si 五分钟 sd 十五分钟
buff/cache 物理内存和交换内存缓冲区的总和
1 显示cpu 的格式和状态
C cpu大小排序
& 后台运行不展示
清理查看设定月初第一天