Linux进程和计划任务管理
  AbEqCNUdDZew 2023年11月02日 42 0

正在工作的程序叫做进程

父进程和子进程

进程之间可能存在父子进程关系,父进程是对子进程进行管理,子进程是对客户端进行相应,进程在执行的时候往往是以不同用户的身份进行执行,主进程可能是以管理员的身份,子进程可能以普通用户的身份。

#####

子进程

子进程为了安全一般使用普通用户(称为程序用户)的身份来执行,或者进行相应

程序用户的特点

程序用户权限低,即使被劫持了那么他获得的权限也仅仅是这个程序用户的权限,程序用户在本机上不会对系统造成严重的安全威胁,很多软件可能都是以这种程序用户的身份来运行的,不同软件的程序用户的名称可能不一样。

ps命令

用途:查看静态的进程统计信息 格式

ps uf

ps -elf

ps ax

ps axfu

a显示所有的

x活跃的进程

f列出父子关系

u可以显示这个进程对应的执行用户

以上可以随意组合

ps ax 显示所有活跃的进程

PID:

进程id systemd是系统中第一个进程,他的进程id是1

cpu对进程进行控制的时候,通过id来区分,每个进程工作的时候都会分配一个唯一的编号,这个编号就是系统(或者说cpu)对他进行控制的时候所识别的编号,如果要杀死一个进程可以对进程的名称进行操作,也可以对进程的PID进行操作,ID都会变的当我们把一个ID杀死后,下次他起来的时候他之前的ID可能会被分配出去了,只有systemctl的ID是不会变的他的ID是1

TTY:

TTY称为终端,终端就类似是在那个窗口运行的,比如远程登录算一个终端,在图形界面下有终端。

?代表不依赖任何终端,这个程序运行的时候,用户还没登录。系统启动的时候运行着一些进程,用户还未登录他不依赖任何终端,这个一般称为守护进程。如果他在某个终端运行着他会写着具体的终端名称

STAT

STAT:状态,S:running(运转)代表此进程工作了但是没事干。S:sleeping(睡觉)不占用系统资源

R:代表占用系统资源,后面时间代表执行该进程的时候占用cpu时间0:00 都是0代表它占用的cpu的时间太短了,显示不出来。

COMMAND

COMMAND:进程所对应的名称,进程名。

top命令

用途:查看动态的进程排名信息,那个进程占用资源多就排在前面

top

Linux进程和计划任务管理_用户名


17:57:40:当前时间

up 11 min:运行了多长时间(系统启动多长时间了)

2 users :有几个用户在登录

load average: 0.10, 0.30, 0.23 当前系统负载情况,当前系统忙闲程度。

第二行:Tasks :209 total, 3running,206 sleeping 0 stopped, 0 zombie

任务数,进程数 总共209个进程 3个正在running(运转) 206个正在 sleeping(睡觉)0个正在处于stopped(关闭状态)0个zombie(僵尸)状态

僵尸状态也是正常的,父进程关闭了 子进程就处于僵尸状态(管他的没有了)

第三行:%Cpu(s):1.9 us, 1.9 sy, 0.0 ni , 代表cpu资源的分配

96.3 id id代表空闲 当前cpu空闲率是96.3% 代表cpu不忙 代表系统当前可能空闲。

第四行KiB Mem : total 总的是多少 free 自由的 used 用了多少

第五行是虚拟内存

在下面是进程的排名,谁占用资源多谁就排在前面。

cpu在工作的时候:一台电脑可以同时做多个事情一边聊天一遍听音乐,看似同时的其实不是,cpu把他的时间分成很多时间片,很短的时间片,他们在工作的时候cpu接受他的请求对他进行控制,快速的切换到下一个时间片,每个时间片或者说每个时间处理不同的任务,只是他切换的太快了,执行一圈过来以后,又执行一圈,让我们觉得他同时都在工作一样。

有些进程占用cpu资源多,cpu会对他进行照顾,这时候就会看到他排名靠上,系统会过一会对当前系统占用资源的状况做一个统计,然后显示,过几秒又统计在这显示一下,一直发生变化,谁占用cpu资源多或者cpu正在处理谁的时候他就会排在前面。

pgrep 命令 用途:根据特定条件查询进程 PID 信息

pgrep httpd 这样只能看到他的进程号

pgrep -l httpd 这样就能看到他的进程名和他的进程号

pstree 将所有行程以树状图显示(显示进程树)

pstree -aup

a所有的

u执行用户是谁 (如果没有显示用户的话,那么这个进程是以管理员的身份运行的可以不显示。)

p显示进程id

进程的启动方式

手工启动

前台启动:用户输入命令,直接执行程序

后台启动:在命令行尾加入“&”符号

在执行命令的时候 后面加上& 他就自动丢掉后台执行 并显示进程id

[]的数代表放在后台的任务号

后面的数字是 这条命令所对应的进程号

当命令在前台运行的时候 ctrl+z 丢到后台挂起(不运行)

bg 任务号 在后台运行 (只有一个任务的时候不输任务号)

fg 任务号 把后台运行的调到前台(只有一个任务的时候不输任务号)

jobs 查看后台任务

将后台进程恢复到前台运行,可指定任务序号

调度启动 使用 at 命令,设置一次性计划任务 使用 crontab 命令,设置周期性计划任务

终止进程的运行

Ctrl+C 组合键

中断正在执行的命令

kill、killall 命令

kill用于终止指定PID号的进程 killall用于终止指定名称的所有进程

-9 选项用于强制终止

kill 进程号

kill -9 进程号 强制杀死

killall 进程名

killall -9 进程名 强制杀死

pkill命令

用途:根据特定条件终止相应的进程 常用命令选项: -U:根据进程所属的用户名终止相应进程 -t:根据进程所在的终端终止相应进程

pkill -9 进程名

pkill -9 -U 用户名 踢出用户登录

pkill -9 -t 终端名

who查看当前登录的用户

计划任务管理

at命令

一次性计划任务

服务脚本名称:/etc/init.d/atd 设置格式 at 时:分 年-月-日

date 查看时间

at 10:04 回车

init 6 ctrl+D 提交

设置10点04分 重启

atq 查看任务

atrm 编号 删除任务

crontab命令

周期性计划任务

按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作 属于周期性计划任务

cron 软件 一般被称为cron服务

crontab 下达指令的

crond 真正干活的是他 一直处于工作状态

管理cron计划任务

编辑计划任务

crontab -e -u 用户名 想以那个用户执行 就写上用户名 不写就是当前用户

查看计划任务

crontab -I -u 用户名

删除计划任务

crontab -r -u 用户名

Linux进程和计划任务管理_计划任务_02


注意:命令要求绝对路径(用which查看命令路径)

如果分钟写* 那就是每分钟执行一次

字段

说明

分钟

取值为从0到59之间的任意整数

小时

取值为从0到23之间的任意整数

日期

取值为从1到31之间的任意整数

月份

取值为从1到12之间的任意整数

星期

取值为从0到7之间的任意整数,0或7代表星期日

命令

要执行的命令或程序脚本

时间数值的特殊表示方法

*表示该范围内的任意时间 ,表示间隔的多个不连续时间点

-表示一个连续的时间范围 /指定间隔的时间频率 应用示例 0 17 * * 1-5 周一到周五每天17:00 30 8 * * 1,3,5 每周一、三、五的8点30分 0 8-18/2 * * * 8点到18点之间每2小时 0 0 */3 * * 每3天

注意:一般有周几就不设置日月,如果设置日月了一般就不会设置周几(有时候可能会出现冲突)

实验命令 


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年11月19日   17   0   0 用户名whoami
  L83A5jZvvg3Q   2023年11月19日   26   0   0 用户名可选值子树
  pfl0iGEgXbv6   2023年11月19日   20   0   0 git用户名bc
  jnZtF7Co41Wg   2023年11月19日   20   0   0 僵尸进程python子进程