进程、任务管理

程序、进程和线程的关系
程序:存放在磁盘上静态代码进程:
1、用户角度:进程是程序的一次动态执行过程
2、操作系统:进程是操作系统分款资源(CPU、内存、硬盘)的最小单位线程是CPU执行任务的最小单位
线程存在进程中,进程中资源共享
多任务:同时运行多个进程
单核CPU的主机,如何实现并发运行进程? 时间片
ps命令
查看静态的进程统计信息(report a snapshot of the current processes)
ps命令是Linux系统中最为常用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照。通过不同的命令选项,可以选择性的查看进程信息。
a:显示当前终端下的所有进程信息,包括其他用户的进程。
u:用户信息。
-e:显示系统内的所有进程信息。
-l:使用长格式显示进程信息。
-f:使用完整的格式显示进程信息(显示父进程)
-F:显示更完整格式的进程信息
-H:以进程层级格式显示进程相关信息
执行"ps aux"命令后,将以简单列表的形式显示出进程信息。 ps aux

USER :启动该进程的用户账号的名称。
PID :该进程在系统中的 PID 号,在当前系统中是唯一的
%CPU; CPU占用的百分比。
% MEM :内存占用的百分比.
VSZ :占用虚拟内存 swap 空间的大小.
RSS :占用常驻内存物理内存的大小。
TTY :表明该进程在哪个终端上运行.“?"表示未知或不需要终端
STAT :显示了进程当前的状态
D :不可中断睡眠
S:可中断的睡眠
R :就绪或运行状态
T:中止状态或未跟踪未停止等待

 

 

top命令
查看进程动态信息
top命令将会在当前终端以全屏交互式的界面塞示进程排名,及时跟踪包括CPU.内存等系统资源占用情况,默认情况下每三秒刷新一次。
上述输出信息中,开头的部分显示了系统任务Tasks、 CPU占用、内存占用Mem、交换空间Swap等信息,下方将依次显示当前进程的排名情况.
top -16:58:24:当前系统时间 1:54:系统已经运行1小时54分钟 2 sers当前错录2个用户 load average: 0.00,0.00,0.00 系统平均负载:( 1分钟的, 5分钟的, 15分钟)状态
系统任务Tasks信息: total:总进程数 running:正在运行的进程数 sleeping休眠的进程数 stopped:中止的进程数 zomibe:僵死无响应的进程数.
CPU占用信息: us:用户占用 sy:内核占用 ni:优先级调度占用 id:空闲CPU wa:I/O等待占用 si:软件中断占用 st:虚拟化占用 Rt:实时变化。.
内存占用Mem信息: total,总内存空间: used,已用内存; free,空闲内存; buffers缓冲区域
交换空间swap占用: total,总交换空间: used,已用交换空间;free,空闲交换空间; cached,缓存空间
PID:进程号.
USER:进程所有者的用户名
PR:优先级
N: nice值。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量,单位kb.
RES:进程使用的、未被换出的物理内存大小,单位kn
SHR:共享内存大小,单位kb.
s:进程状态
%CPU: 上次更新到现在的CPU时间占用百分比
top -d指定刷新的间隔时间 top -d 5
top -b -n 以批量处理模式操作同时指定循环显示的次数 top -b -n2
注意,当CPU占用率过高时,不应再直接执行top命令查看,可以将信息存入一个文件内查看,以免CP占用率过高导致崩溃 top -b -n1 >1/top.txt cat/top.txt
top -u指定用户名 top -u lisa
top -p指定进程号 top -p 7767
在top命令的全屏操作界面中,可以按P键根据CPU占用情况对进程列表进行排序,,或按M键根据内存情用情况进行排序,按N键根据启动时间进行排序,按h键可以获得top程序的在线帮助信息,按q键可以正常退出top程序
P: 根据CPU使用百分比大小进行排序(默认进入时即为此排序)
M:根据驻留内存大小进行排序
T:根据累计时间进行排序
k:终止一个进程
q:退出程序
r:重新安排一个进程的优先级别(-2019)
pstree命令
pstree命令可以输出Linux系统中各进程的树形结构,判断出各进程之间的相互关系(父、子进程)。pstree 命令默认情况下只显示各进程的名称。
-p:选项使用时可以同时列出对应的PID号
-u:选项可以列出对应的用户名。
-a:选项可以列出完整的命令信息。 pstree
执行“pstree-aup”命令可以查看当前系统的进程树,包括各进程对应的PID号、用户名、完整命令等信息。 pstree -aup
中止进程
Ctrl+C 中断正在执行的命令
kill、killall 命令,
kill:向进程发送控制信号,以实现对进程管理
显示当前系统可用信号:kill -1 trap -l
-l:列出当前kill能够使用的信号(注意是小写L) kill -i
常用信号:man 7 signal,
1)SIGHUP:无须关闭进程而让其重读配置文件
2)SIGINT:终止正在运行的进程;相当于Ctrl+c.
9)SIGKILL:杀死正在运行的进程(强制立刻杀死进程)。
15)SIGTERM:终止正在运行的进程(可能不会立即生效,会等进程保存完所有数据才正常退出)
指定信号的方法:
(1)信号的数字标识 1,2,9 (2)信号完整名称:SIGHUP (3)信号的简写名称:HUP
kill1用于终止指定PID号的进程
killall用于终止指定名称的所有进程
-9选项用于强制终止。
pgrep -1 "ping" kill 11260 killall -9 vim
pkill命令
作用:根据特定条件终止相应的进程。
-U:根据进程所属的用户名终止相应进程
-t根据进程所在的终端终止相应进程 pgrep -1-U crushlinux -t tty1 pkill -9 -U crushlinux pgrep -1-U crushlinux -t tty1
任务管理
任务
登录系统取得shell之后,在单一终端接口下启动的进程
前台
在终端接口上,可以在提示符上用户操作的环境
后台
不显示在终端接口的环境
手工启动
前台启动:用户输入命令,直援执行程序 ping 127.0.0.1
后台启动:在命令行尾加入“&”特号
dd if=/dev/zero of=/testfile bs=1M count=2048 & [1] 11437
nohup 是使程序永久换行执行的方式。
Run COMMAND, igoring hangup sigals.可以看到是“运行命令,忽略挂起信号”就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们斯开SSH连接都不会
&是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出 nohup COMMAND &
nohup tail -f/var/log/messages& [1] 12171 nohup:忽略输入并把输出追加到"nohup.out" ps aux | grep tail
另外,nohup执行后,会产生子文件,把命令的执行中的消息保存到这个文件中,一般在当前目录下,如果当前目录不可写,那么自动保存到执行这个命令的用户的home目录下,例如root的话就保存在/root/下这个我们常在运行命令和脚本中常用到的。
进程的前后台调度
ctrl+z:将正在前台运行的任务放入后台暂停。 jobs:查看处于后台的任务列表
-1列出进程ID及其它信息。
-p仅列出进程ID
-n 仅列出自从上次输出了状态变化提示(比如显示有进程退出)后的发生了状态变化的进程。
-r 仅显示运行中的作业。
-s仅显示停止的作业。
-x运行命令及其参数,并用新的命令的进程ID 替代所匹配的原有作业的进程组 ID。
fg:将后台进程恢复到前台运行,可指定任务程序号 bg:将后台暂停的进程调至后台运行。 at :管理一次性任务计划 crontab:管理周期任务计划。
dd if=/dev/zero of=/testfile bs=1M count=2048
at一次性任务设置
at命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd必须已经运行。需要注意的是,计划执行任务的时间、日期必须安排在当前系统的时刻之后,否则将无法正确设置计划任务。
systemctl status atd atd
设置一次性计划任务时,在at命令行中依次指定计划执行任务的时间、日期作为参数
(若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前时间),确认后将进入带“at>”提示符的任务编辑界面,每行设置一条执行命令,可以依次设置多条语句,最后按Ctr1+D组合键提交任务即可。所设置的命令操作将在计划的时间点被依次执行。
at 命令使用方法:
at HH:MM 今天的HH:MM时间执行,若是时间已经超过,则明天的HH:MM时间执行 at HH:MM YYYY-MM-DD 指定具体的执行日期和时间 at HH:MM+ number (minutes hoursdaysweeks)某个时间点+分钟|小时|天|星期执行
Ctrl+D 保存退出
atq 查询现有的一次性任务计划 atrm[任务序号]删除第几项任务

 

posted @ 2021-09-24 22:13  安日佩  阅读(253)  评论(0)    收藏  举报