linux下进程与计划任务管理

avatar
作者
猴君
阅读量:0

linux下进程与定时任务的管理

进程与程序

程序:

存储在硬盘、光盘等介质中含有可执行代码的可执行文件。

不删除就永久存在。

状态为静态。

进程:

进程是资源分配的最小单位。

临时存储在内存中(关机消失)。

动态执行的代码。

一个父进程可以拥有多个子进程。若该进程的父进程先行终止,而子进程没由终止,其子进程变为僵尸进程

根据线程数分类可以分为进程型程序线程型程序

线程:

线程是CPU调度的最小单位(程序执行的最小单元,共享线程内存资源)

进程程序:一个程序就一个线程,从稳定性的角度来看程序稳定更好。

线程程序:一个进程有6万多个线程,从效率的角度看线程型程序更好。

进程的启动顺序:

  • 父进程(master)先启动然后子进程(worker)启动,由socket进程守护端口。
  • 父进程先于子进程死掉,子进程的资源无法回收,形成僵尸进程

进程管理

静态查看进程

命令1: ps aux

选项: a 显示终端上的所有进程,包括其它用户的进程。

u 表示列出进程的用户。

x 显示当前用户在所有终端下的进程信息。

在这里插入图片描述

列名说明
USER进程的用户
PID进程的ID号
%CPU进程占用的 CPU 百分比
%MEM进程占用的 内存 的百分比
VSZ进程使用的虚拟内存量
RSS进程占用的物理内存量
TTY启动进程的终端名。不是从终端启动的进程则显示为?
STAT进程状态:D 不可中断状态;R 正在运行;S 休眠状态;T 停止状态;Z 僵尸进程,该进程的父进程已经死掉
START进程的启动时间
TIME进程运行的时间
COMMAND进程的启动命令

命令2:ps -elfps -eLf

选项: -e 显示系统内的所有进程信息。

l 使用长格式显示进程信息。

L 查看进程的父进程号

f 使用完整的格式显示进程信息。

l可以查看进程的父进程号,L可以查看进程的父进程号

动态查看进程

命令:top [选项]

选项: -d 指定刷新的间隔时间,单位秒

-b 以批量处理模式操作,一般与-n同时使用

-n 指定循环显示的次数

-u 指定用户名

-p 指定进程号

  • 作用:top 命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括 CPU、 内存等系
    统资源占用情况,默认情况下三秒刷新一次,默认以 CPU 占用率排序。

top交互界面示例图:在这里插入图片描述

表头第一行解释:

系统时间 up 5:32		##系统已运行时长 2 user		##当前登录用户数 load average: 0.00, 0.01, 0.05	##平均负载:1分,5分,15分 

表头第二行解释:

Tasks		##总进程数 Threads		##总线程数(按H) running		##正在运行的进程数 sleeping	##休眠的进程数 stopped		##中止的进程数 zombie		##僵死的进程数 

表头第三行解释:

us		##用户占用 sy		##内核占用 ni 		##优先级调度占用 id		##空闲CPU,要解空闲的 CPU 百分比,主要看%id 部分 wa		##I/O 等待占用 hi		##硬件中断占用 si		##软件中断占用 st		##虚拟化占用 

表头第四行解释:

total		##总内存空间 free		##空闲内存 used		##已用内存 buff/cache	##物理内存和交换内存的缓冲区总和 

表头第五行解释:

total		##总交换空间 free		##空闲交换空间 used		##已用交换空间 avail Mem	##可用物理空间 

top交互按键:

按键作用
P键根据CPU使用百分比大小进行排序
M键根据内存大小进行排序
N 键根据启动时间进行排序
c 键切换显示命令名称和完整命令行
h 键top程序的帮助界面
k键输入指定进程的 PID 号终止进程
q 键退出
数字 1 键显示CPU个数和状态
H 键查看线程

查看进程信息

命令:pgrep [选项]

常用选项: -l 显示进程名

-U 指定特定用户

-t 指定终端

在这里插入图片描述

查看进程树

命令:pstree [选项]

常用选项: -a 显示完整信息

-u 列出对应用户名

-p 列出对应 PID 号

后台启动进程

例:我们启动一个ping命令常常会占据我们的前台,这个时候我们不能进行其他操作在这里插入图片描述

这时,我们可以通过以后台启动的方式进行ping

我们只需要在命令的末尾加上&符号即可在这里插入图片描述

后台程序可以用jobs -l命令查看(-l可以查看其的PID)

在这里插入图片描述

fg命令可以将后台进程恢复到前台运行,可指定任务程序号在这里插入图片描述

Ctrl+Z将当前进程挂起,即调入后台并停止执行

bg命令可以将后台暂停的进程调至后台运行

nohup 用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

终止进程

  1. Ctrl+C 中断正在执行的命令

  2. kill killall 命令 (-9 选项用于强制终止)
    kill 用于终止指定 PID 号的进程
    killall 用于终止指定名称的所有进程

  3. pkill 命令

格式:pkill -9 [选项] (-9 选项用于强制终止)

选项: -U 根据进程所属的用户名终止相应进程

-t 根据进程所在的终端终止相应进程

定时任务

一次性定时任务

at命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd必须已经运行。需要注意
的是,计划任务执行的时间、日期必须安排在当前系统的时候之后,否则将无法正确设置计划任务。

at 命令 :在指定的时间执行命令。Ctrl + D 进行提交

at的特殊写法:

  • at 20:00 2024-10-1  在具体时间执行
  • at now +10min  在十分钟后执行
  • at 17:00 tomorrow  明天下午五点执行
  • at 6:00 pm + 3 days  在3天后下午6点执行
  • at 23:00 < a.txt  将a.txt导入

at -c 查看任务的具体内容

atrm[任务序号]删除第几项任务 atrm=at -d

atq 或 at -l查看 未执行的定时任务列表;

命令:at HH:MM

选项: -l 查看已有一次性定时任务

-d 删除指定定时任务

-c 查看任务的具体内容

ctrl+D 保存任务

周期行定时任务

​ 使用crontab命令设置的计划任务可以按预设的周期重复执行,可以大大减轻设置重复性系统管理任务的操作。启用周期性任务也有一个前提的条件,即对应的系统服务crond必须已经运行。

  • 按照预先设置的 时间周期(分、时、日、月、周)重复执行用户 指定的命令 操作
  • 属于 周期性计划任务。
  • 主要设置文件
    • 全局配置文件:/etc/crontab
    • 系统默认的设置:/etc/cron.*/
    • 用户定义的设置:/var/spool/cron/用户名
    • 日志文件:/var/log/cron
    • 邮件文件保存位置:/var/spool/mail
    • 邮件发送失败,会保存小文件:/var/spool/postfix/maildrop

命令:crontab [选项]

选项: -e 编辑计划任务

-l 查看计划任务

-r 清空定时任务

定时任务的格式为:分 时 日 月 周 命令

10 10 1 1 * /bin/ls /root  

时间数值表示方法:

  • * :表示这个字段的范围内 任意 的时间;
  • ,:表示间隔的多个 不连续 时间点;
  • - :表示一个 连续 的时间范围;
  • / :指定间隔的时间频率,每几天、每几小时 执行一次;

常见的表达式实例:

0 17 * * 1-5	# 周一 到 周五 每天17:00 30 8 * * 1,3,5	# 每周一、三、五的 8点30分 0 8-18/2 * * *	# 8点 到 18点 之间 每2小时 0 * */3 * *		# 每 3 天  0 0 * * *		#每天定时执行一次 0 0 * * 1		#每周定时执行一次 0 0 1 * *		#每月定时执行一次 0 0 1 1 *		#每年定时执行一次 
  • 用户定义的设置:/var/spool/cron/用户名在这里插入图片描述

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!