网站制作排名优化,装修设计效果图制作,做家居的网站,网站设计和内容上的不足和建议Linux 进程管理与计划任务详解
一、程序与进程的基本概念
程序#xff1a;保存在外部存储介质中的可执行机器代码和数据的静态集合#xff0c;是静态的文件实体进程#xff1a;在 CPU 及内存中处于动态执行状态的计算机程序#xff0c;是程序的动态执行实例关联关系#x…Linux 进程管理与计划任务详解
一、程序与进程的基本概念
程序保存在外部存储介质中的可执行机器代码和数据的静态集合是静态的文件实体进程在 CPU 及内存中处于动态执行状态的计算机程序是程序的动态执行实例关联关系每个程序启动后可创建一个或多个进程进程随程序启动而产生随执行结束而消亡
二、进程查看工具
1. ps查看静态进程信息
用于捕捉某一时刻的进程快照常用选项及功能如下选项组合功能描述-a显示当前终端下的所有进程包括其他用户-u以用户为主的格式输出进程信息-x显示当前用户所在终端的进程信息与-a结合显示系统所有进程-e显示系统内所有进程信息-l以长格式显示进程信息-f以完整格式显示进程信息ps输出字段说明字段含义USER启动进程的用户账号名称PID进程在系统中的唯一数字 ID 号%CPUCPU 占用百分比%MEM内存占用百分比VSZ占用虚拟内存swap 空间的大小RSS占用常驻内存物理内存的大小TTY进程运行的终端“” 表示未知或无需终端STAT进程状态S 休眠、R 运行、Z 僵死、 高优先级、N 低优先级等START进程启动时间TIME进程占用 CPU 的时间COMMAND启动进程的命令名称2. top查看进程动态信息
实时监控进程资源占用动态刷新进程状态默认 3 秒 / 次核心信息如下
1系统负载信息
load averageCPU 平均负载依次为 1 分钟、5 分钟、15 分钟内的平均值。若 5 分钟或 15 分钟负载值超过 CPU 核心数的 2 倍系统处于高负载状态
2进程状态统计task状态含义total总进程数running正在运行的进程数sleeping休眠状态的进程数stopped停止状态的进程数zombie僵死状态的进程数3CPU 占用信息% cpu指标含义us用户进程占用 CPU 时间的百分比sy系统进程占用 CPU 时间的百分比ni优先级调整后的用户进程占用 CPU 百分比id空闲 CPU 的百分比waI/O 等待占用 CPU 时间的百分比hi硬件中断占用 CPU 时间的百分比si软件中断占用 CPU 时间的百分比st虚拟化环境中被占用的 CPU 时间百分比4进程详细字段top输出字段含义PID进程 IDUSER进程属主名称PR进程优先级NI进程 nice 值-20~19值越小优先级越高VIRT占用虚拟内存总量kbRES占用物理内存总量kbSHR与其他进程共享的内存总量kbS进程状态D 不可中断休眠、R 运行、S 休眠、T 停止、Z 僵死%CPU进程使用 CPU 的百分比%MEM进程使用内存的百分比TIME进程启动后占用的 CPU 总时间COMMAND启动进程的命令名称3. 其他进程查看工具pgrep -l 进程名查看某一进程的进程号和名称例pgrep -l systemdpstree查看进程树形结构常用选项
-p同时列出对应 PID-u列出对应用户名-a列出完整命令信息三、进程控制方法
1. 手动启动进程
前台启动直接执行命令如ls进程占用当前终端后台启动命令后加如route 进程在后台执行不阻塞终端
2. 进程挂起与恢复操作命令 / 快捷键功能挂起前台进程CtrlZ将当前运行的前台进程调入后台并停止执行查看后台进程jobs -l显示后台进程列表含进程号和状态恢复后台进程后台运行bg 任务号使后台暂停的进程继续在后台执行恢复后台进程前台运行fg 任务号将后台进程调回前台执行3. 终止进程命令格式适用场景killkill 进程号正常终止指定 PID 的进程kill -9kill -9 进程号强制终止无法正常结束的进程慎用killallkillall 进程名终止所有同名进程如killall httpdpkillpkill -U 用户名/pkill -t 终端根据用户或终端终止特定进程四、计划任务设置
1. at一次性任务设置任务
at 23:30 2020-11-23 # 指定执行时间
at ls / /tmp/a # 输入要执行的命令
at CtrlD # 按CtrlD确认任务管理
atq查询待执行的 at 任务at -c 任务号查看任务具体内容atrm 任务号删除指定 at 任务2. crontab周期性任务
1核心配置
系统配置文件/etc/crontab系统级任务用户任务存放目录/var/spool/cron/用户级任务时间格式分、时、日、月、周支持通配符*任意值、*/n每隔 n 单位、-范围、,列表
2常用命令命令功能crontab -e编辑当前用户的周期性任务crontab -u 用户名 -e编辑指定用户的周期性任务crontab -l查看当前用户的任务列表crontab -r删除当前用户的所有任务3权限控制
通过/etc/cron.allow允许创建任务的用户列表和/etc/cron.deny禁止创建任务的用户列表限制权限仅/etc/cron.allow中列出的用户可创建任务默认优先于cron.deny
五、计划任务示例解析
示例 1为用户 natasha 配置每日定时任务
需求每天 14:23 执行/bin/echo RHCSA仅允许 natasha 和 root 创建计划任务
步骤创建用户useradd natasha配置任务
crontab -u natasha -e添加内容
23 14 * * * /bin/echo RHCSA限制权限编辑
/etc/cron.allow添加
root
natasha重启服务
systemctl restart crond
systemctl enable crond示例 2每月周期性任务
需求每月 1~5 号 14:00-17:00每隔 10 分钟执行/bin/echo I Love Galaxy
配置
crontab -e # 编辑当前用户任务
*/10 14-17 1-5 * * /bin/echo I Love Galaxy # 添加任务
systemctl restart crond # 重启服务使配置生效
systemctl enable crond # 设置开机自启示例 3工作日定时记录时间
需求周一至周五 8:00-21:00每 2 分钟将当前时间附加到/home/galaxy/my_first_cron_job.txt
配置
crontab -e # 编辑任务
*/2 8-21 * * 1-5 date /home/galaxy/my_first_cron_job.txt # 添加任务注意用追加内容
systemctl restart crond
systemctl enable crond六、注意事项
crontab任务中建议使用命令绝对路径如/bin/date避免环境变量问题追加内容用覆盖内容用根据需求选择修改计划任务后需重启crond服务systemctl restart crond使其生效僵死进程Z 状态需及时用kill -9手动终止避免资源占用