程序和进程的关系 | |
程序 | 保存在硬盘、光盘等介质中的可执行代码和数据,是静态保存的代码。 |
进程 | 在CPU及内存中运行的程序代码,是动态执行的代码。分为父、子进程:每一个进程可以创建一个或多个进程。 |
ps:静态查看进程统计信息 | |
直接执行不带任何选项的ps命令时,将只显示当前用户会话中打开的进程 | |
ps aux命令:以简单列表的形式显示出进程信息 | |
选项 | a:显示当前终端下的所有进程信息,包括其他用户的进程 u: 使用以用户为主的格式输出进程信息 x:显示当前用户在所有终端下的进程信息 |
查看某个进程的详细信息 | |
ps -elf命令:以长格式显示系统中的进程信息,并且包含更丰富的内容 | |
选项 | -e:显示系统内的所有进程信息 -l:使用长格式显示进程信息 -f:使用完整的格式显示进程信息 |
S:进程状态 PID:子进程号 PPID:父进程号 NI:调节了优先级的进程(系统根据进程对资源的占用,会给进程一个分数,资源占用越高,分数越高。当系统资源不够时,程序就会和系统强资源,导致系统宕机。系统有个机制,out of memory内存溢出机制,一旦内存溢出,就会触发OOM-kill,它会杀死分数最高的进程,无论是系统进程还是其他进程。) | |
查看某个进程的详细信息 | |
top:动态查看进程统计信息 | |
常用选项 | -d:指定刷新的间隔时间,单位秒 |
-b:以批量处理模式操作,一般与-n同时使用 | |
-n:指定循环显示的次数 | |
-u:指定用户名 | |
-p:指定进程号 | |
当CPU占用率过高时,不应再直接执行top命令查看,可以将信息存入一个文件内查看,以免CPU占用率过高导致崩溃 | |
常用交互命令 | P:根据CPU使用百分比大小进行排序(默认进入时即为此排序) |
M:根据驻留内存大小进行排序 | |
T:根据累积时间进行排序 | |
k:终止一个进程 | |
q:退出程序 | |
r:重新安排一个进程的优先级别(-20~19) | |
第一行 | top – 11:40:02:系统当前时间 up 7:43:系统运行时长 2 users:当前登录了两个用户 Load average: 0.00 0.00, 0.00 :系统平均负载,1分钟,5分钟,15分钟 |
第二行 | Tasks:任务 74 total:共有74个进程 1 running:正在运行的有一个进程 73 sleeping:休眠73个进程 0 stopped:停止的进程 0 zombie:僵死的进程 |
第三行 | 进程的状态:用户态进程和内核态进程 0.0%us:用户(user)CPU占用百分比 0.0%sy:内核(system)空间占用CPU百分比 0.0%ni:(nice)修改优先级的进程占用CPU的百分比 99.7%id:(idle)CPU剩余百分比 0.0%wa:(wait)处于I/O进程等待状态CPU的百分比 0.0%hi:硬中断进程占用CPU的百分比 0.0%si:软中断进程占用CPU的百分比 0.0%st:处于虚拟化进程占用CPU的百分比 |
第四行 | …total:总内存大小 …used:使用了多少 …free:还剩余多少 …buffers:缓存多少 真是内存大小=buffers+cached |
第五行 | Swap:交换分区,交换缓存 …total:总量 …used:已使用 …free:剩余 …cached:缓存 |
pgrep:根据特定条件查询PID信息 | |
常用选项 | -l:显示进程名 |
-U:指定特定用户 | |
-t:指定终端 | |
实例 | |
pstree:以树形结构列出进程信息 | |
常用选项 | -a:显示完整信息 |
-u:列出对应用户名 | |
-p:列出对应PID号 | |
进程的启动方式 | |
手动 启动 | 前台启动:用户输入命令,直接执行程序 后台启动:再命令行尾加入“&”符号 |
进程的前后台调度 | Ctrl+Z:将进程改期,即调入后台并 |
jobs:查看处于后台的任务列表,加-l同时显示PID号 | |
fg:将后台进程恢复到前台运行,可指定任务程序号 | |
bg:将后台暂停的进程调至后台运行 | |
终止进程的运行 | Ctrl+C:终端正在执行的命令 |
杀死 进程 | kill:通过PID终止进程 |
killall:通过服务名称终止所有相关的进程 | |
pkill:通过服务名称终止进程 -U:根据进程所属的用户名终止相应进程 -t:根据进程所在的终端终止相应进程 | |
kill 实例 | |
killall 实例 | 一般不要用 |
pkill 实例 | 踢出客户端 |
at:设置一次计划任务 格式:at [HH:MM] [yyyy-mm-dd] 设置当天的任务计划可不加日期 | |
服务脚本 | /etc/init.d/atd |
基本操作 | Ctrl+D:保存退出 atq:查询现有的一次性任务计划 atrm:[任务序号] 删除第几项任务 |
查看系统当前日期 | |
不用 | |
使用crontab命令,设置周期性计划任务 | |
脚本名称 | /etc/init.d/crond 配置文件:/etc/crontab |
周日零点进行数据备份 0 0 * * 1 每周四和周六二十四点执行任务 0 0 * * 5,7 | |
管理计划任务 | 编辑:crontab -e [-u用户名] 查看:crontab -l [-u用户名] 删除:crontab -r [-u 用户名] -u只有root用户可用 |
查看定时任务执行日志 | |
编写定时任务 | |
超户的邮件 | 当定时任务产生屏幕输出后,会给超户发送文件,目录为/var/spool/mail/root 当屏幕输出过多时,会占用很多系统资源,最后导致服务器宕机。 |
定时任务数据存储位置 | 当任务被删除后,/var/spool/cron/root会被自动删除 |
每创建一个文件,就会占用一个编码(inode号),编码没了,磁盘还有空间,但是却不能创建文件。这就是有时候有内存,但是却不能创建文件的原因。文件越小,会占用的编码也就可能越多。 | |
先开启postfix邮件服务,然后在管理员邮箱/var/spool/postfix/maildrop中可以看到文件,然后文件过多时,需要定时清理。 | |
已经重定向的任务,不能再重定向到其他位置中。也就是一条命令,只能重定向一次。 | |
Linux基础(十)进程和计划任务
最新推荐文章于 2022-11-27 21:13:39 发布