云计算百科
云计算领域专业知识百科平台

Linux 进程与计划任务管理实用指南

一、进程管理基础认知

进程是Linux系统中正在执行的程序实例,是资源分配和任务调度的基本单位。与静态存储在硬盘上的程序不同,进程会占用CPU、内存等系统资源,并在生命周期中呈现不同状态(运行、休眠、僵死等)。合理管理进程能避免资源浪费、解决程序卡死问题,保障系统稳定运行。

二、常用进程查看命令(简易版)

(一)快速查看:ps命令(静态)

ps命令是查看进程的基础工具,核心用法简单好记:

  • ps aux:查看系统中所有进程的关键信息,包括用户、PID(进程唯一ID)、CPU/内存占用率、启动命令等。

  • ps -ef:显示进程的父子关系(PPID列),方便追踪进程来源。

  • 实用技巧:结合grep过滤特定进程,比如ps aux | grep firefox,快速找到火狐浏览器进程

执行如下的“ps aux”命令后,将以简单列表的形式显示出进程信息,如图所示

ps aux

上述输出信息中,第一行为列表标题,其中各字段的含义描述如下:

  • USER:启动该进程的用户账号的名称。
  • PID:该进程在系统中的数字ID号,在当前系统中是唯一的。
  • %CPU:CPU占用的百分比
  • %MEM:内存占用的百分比
  • VSZ:占用虚拟内存(swap空间)的大小
  • RSS:占用常驻内存(物理内存)的大小
  • TTY:表明该进程在那个终端上运行。“?”表示未知或不需要终端
  • STAT:显示进程当前的状态,如S(休眠),R(运行),Z(僵死),<(高优先级),N(低优先级),s(父进程),+(前台进程)。对处于僵死状态的进程应该予以手动终止。
  • START:启动该进程的时间
  • TIME:启动该进程占用的CPU时间
  • COMMAND:启动该进程的命令的名称

(二)动态监控:top命令

top命令像“系统任务管理器”,实时刷新进程状态(默认3秒/次):

  • 核心功能:
    • 顶部显示系统整体状态(总进程数、CPU/内存使用率、负载平均值)。

    • 按P键按CPU占用排序,按M键按内存占用排序,快速定位资源消耗大户。

    • 按k键输入PID,可直接终止指定进程,无需切换命令行。

  • 退出方式:按q键即可返回终端。

执行如下“top”命令可获得如图所示

top

上述输出信息中,开头的部分显示了系统任务(tasks),CPU占用,内存占用(mem),交换空间(swap)等汇总信息,汇总信息下方依次显示当前进程的排名情况。相关信息的含义表述如下。

  • 系统任务(tasks)信息:total,总进程数:running,正在运行的进程数;sleeping,休眠的进程数;stopped,中止的进程数;zombie,僵死无响应的进程数
  • CPU占用信息:us,用户占用;sy,内核占用;ni,优先级调度占用;id,空闲CPU;wa,I/O等待占用;hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。要了解空闲的CPU百分比,主要看%id部分。
  • 内存占用(mem)信息:total,总内存空间;free,空闲内存;used,已用内存;buff/cache,物理内存和交换内存的缓冲区总和。
  • 交换空间(swap)占用:total,总交换空间;free,空闲交换空间;used,已用交换空间;availmem,可用物理空间。

例如,从上述“tasks:….”部分信息可得知当前共有238个进程,其中正在运行的1个,休眠状态的237个,停止和僵死状态的0个。

(三)精准查询:pgrep与pstree

  • pgrep 进程名:直接返回指定进程的PID,比如pgrep sshd,快速获取SSH服务进程ID。

  • pstree:以树形结构展示进程关系,一眼看清父进程和子进程,加上-p选项可显示PID(pstree -p)。

三、进程控制核心操作

(一)启动进程

  • 前台启动:直接输入命令,比如ls,执行完成前无法输入其他命令。

  • 后台启动:命令末尾加&,比如cp /home/file.iso /data/ &,进程在后台运行,不影响当前操作。

(二)进程调度与切换

  • 挂起进程:前台进程运行时按Ctrl+Z,暂时暂停进程并转入后台。

  • 查看后台进程:jobs命令,显示后台进程的任务编号和状态。

  • 恢复进程:bg 任务编号(后台恢复运行),fg 任务编号(调回前台运行)。

(三)终止进程

  • 前台进程:直接按Ctrl+C强制中断(比如终止卡死的命令)。

  • 按PID终止:kill PID(正常终止),kill -9 PID(强制终止,用于无响应进程)。

  • 按名称终止:killall 进程名,比如killall vim,批量终止所有vim进程,适合多实例进程。

补充知识点:进程状态识别

通过ps/top命令的STAT列,可判断进程状态,快速排查问题:

  • R(运行):正在占用CPU执行任务。

  • S(休眠):等待资源(如IO),可被唤醒。

  • Z(僵死):进程已结束但资源未释放,需用kill -9强制清理。

  • <(高优先级):系统优先分配资源的进程。

  • N(低优先级):资源分配优先级较低的进程。

四、计划任务管理

计划任务用于自动化执行重复操作(如备份、日志清理),无需人工干预,核心工具为at(一次性任务)和crontab(周期性任务)。

(一)一次性任务:at命令

使用at需要先安装相关软件包    

dny -y install at (安装)

systemctl start atd   (启动)

date (查看日期)

适用于只执行一次的操作(如定时关机、临时备份):

  • 前提:启动atd服务(systemctl start atd),确保任务能正常触发。

  • 基本用法:

    • 输入at 时间,比如at 22:30(当天22:30)或at 10:00 2025-12-31(指定日期时间)。

    • 进入任务编辑界面,输入要执行的命令(比如shutdown -h now关机)。

    • 按Ctrl+D提交任务。

  • 管理命令:atq查看待执行任务,atrm 任务编号删除任务。

(二)周期性任务:crontab命令

适用于重复执行的操作(如每日备份、每周清理日志):

  • 前提:启动crond服务(systemctl start crond),系统默认自启。

系统任务配置文件:/etc/crontab

用户cron任务的配置文件存放目录:/var/spool/cron

1. 核心配置格式

每条任务占一行,格式为:分钟 小时 日期 月份 星期 命令

  • 取值范围:

    • 分钟:0-59 小时:0-23 日期:1-31 月份:1-12 星期:0-6(0代表周日)

  • 特殊符号:

    • *:任意时间(比如小时位填*,表示每小时)。

    • -:连续范围(比如1-5,表示周一到周五)。

    • ,:离散时间(比如3,6,9,表示3点、6点、9点)。

    • /:间隔频率(比如*/10,表示每10分钟)。

2. 常用命令
  • crontab -e:编辑当前用户的计划任务。

  • crontab -l:查看当前用户的计划任务。

  • crontab -r:清空当前用户的所有计划任务。

  • crontab -u :指定所管理的计划任务属于哪个用户,默认是针对当前用户(自己),一般只有root用户有权限使用此选项(用于编辑,删除与其他用户的计划任务)

                  执行命令需输入绝对路径!!!!!!!!!!!!!!!!!
3. 实用示例
  • 每天7:30启动SSH服务:30 7 * * * /usr/bin/systemctl start sshd

  • 每周六23:00清理/tmp目录:0 23 * * 6 /usr/bin/rm -rf /tmp/*

  • 每5天备份一次/etc目录:0 0 */5 * * /usr/bin/tar -czf /backup/etc_$(date +%Y%m%d).tar.gz /etc

补充知识点:计划任务注意事项

  • 命令必须写绝对路径(比如/usr/bin/cp而非cp),避免因环境变量问题执行失败。

  • 避免设置过于频繁的任务(如每分钟执行一次),防止占用过多系统资源。

  • 敏感操作(如删除文件)建议先测试命令有效性,再写入计划任务。

  • 普通用户只能设置自己权限范围内的任务,root用户可管理所有用户的计划任务(crontab -u 用户名 -e)。

  • 五、核心总结

  • 进程管理:用ps查静态信息、top看动态状态,用kill/killall终止异常进程,灵活运用前后台切换提升操作效率。

  • 计划任务:一次性任务用at,周期性任务用crontab,掌握时间格式和符号用法,即可实现自动化运维。

  • 关键原则:操作前确认进程/PID,计划任务优先使用绝对路径,定期检查任务执行结果,确保系统稳定高效运行。

  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » Linux 进程与计划任务管理实用指南
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!