linux进程管理

简介: linux进程管理1、掌握程序、进程、线程2、查看进程的命令:ps aux 或者ps -elf;top;pgrep;pstree;3.如何查看子进程?pstree ap 或者 cd /proc/数字文件中的/stat4.启动进程:前台启动;后台启动(命令最后加&)

前言


程序(有一个固定的路径)——二进制文件(比如公司)


保存在硬盘、光盘等介质中的可执行代码和数据

静态保存的代码


进程——程序运行的过程,有生命周期及运行状态(比如部门)


在CPU及内存中运行的程序代码

动态执行的代码

父、子进程(一个程序可以创建一个或多个进程)

每个程序可以创建一个或多个进程

区别:进程是自动台的,程序是静态的


线程(比如员工)与进程:


资源分配与调度

image.png

进程是资源调配的基本单位

线程是程序执行的最小单位


一、查看进程信息



1.1ps 查看静态的进程统计信息



1.1.1ps -aux



image.pngimage.pngimage.pngSTAT:


D:不可被唤醒的休眠状态;


R:正在运行状态;


S:处于休眠状态,可被唤醒;


T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;


Z:僵厂进程,进程己经中止,但是部分程序还在内存当中 ,但其父进程无法正常中止它


僵厂进程: 僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源


结合grep过滤查询

由于系统中运行的进程数量较多,需要查询某一个进程的信息时可以结合管道操作和grep命令进行过滤。例如,执行以下操作可以过滤出包含“bash”的进程信息

image.png

1.1.2ps -elf



image.pngimage.png

1.2查看动态的进程排名信息——top



动态查看进程 top

可以用ctrl +c 停止查询

image.png

1.2.1利用按键更加清晰查看进程



image.png

1.2.2各行信息的含义



第一行:任务队列信息

image.png

第二行:系统进程信息

image.png

第三行: CPU占用信息

image.png


第四行:内存占用信息

image.png


第五行:为交换空间的信息

image.png

进程信息区各列解释

image.png

1.3pgrep命令— 根据特定条件查询进程PID信息



常用选项

image.png


1.4pstree命令—查看进程树



pstree命令可以查看当前系统的进程树,包括个各进程对应的PID号、用户名、完整命令等信息

常用选项:

image.png

二、进程的启动与控制



2.1控制进程



进程启动方式为手工启动和调度启动


2.1.1手工启动



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

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

当使用cp命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&”符号将复制操作放到后台运行,以便用户可以继续执行其他命令操作

用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数命令操作在前台启动运行。进程在后台运行时,用户可以继续在当前终端中输入其他命令,而无须等待该进程结束,适用于运行耗时较长的操作。启动后台进程需要使用“&”操作符,将“&”操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。查看时需要在同一终端中

image.png



2.1.2调度启动



使用at命令,设置一次性计划任务

使用crontab命令,设置周期性计划任务

在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。这时就需要用户事先进行调度安排,指 定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务。调度启动的计划 任务进程均在后台运行,不会占用用户的命令终端。进程的调度启动可以通过 at、crontab 命令进行设置,其中 at 命令用于设置一次性(如12:15 时重启网络服务)计划任务,crontab 命令用于设置周期性运行(如每周五 17:30 备份数据库)的计划任务。


2.2进程的前后台调度



Ctrl+Z组合键

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


jobs命令

jobs [-l]

查看处于后台的任务列表


fg命令

将后台进程恢复到前台运行,需要指定后台进程的任务编号作为参数


bg(BackGround,后台)命令

可以将后台中暂停执行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继续在后台执行操作需要指定后台进程的任务编号作为参数


[root@localhost ~]# jobs

[1]- Stopped cp /dev/cdrom mycd.iso

[2]+ Stopped top

[root@localhost ~]# fg 1


2.3终止进程的运行



Ctrl+C组合键

中断正在执行的命令


kill、killall命令

kill用于终止指定PID号的进程

killall用于终止指定名称相关的所有进程

-9选项用于强制终止


pkill命令

根据特定条件终止相应的进程

常用命令选项

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

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


三、计划任务管理



3.1at命令一次性计划任务



at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行

at>需要执行的指令

at>

#Crtl+D键可以提交任务

job 1 at xxxxxxxxxx

image.png



atq #查看未执行的一次性计划任务

atrm 4 #删除第4条任务


3.2crontab周期性计划任务



按照预先设置的时间周期(分、时、日、月、周)重复执行用户指定的命令操作


属于周期性计划任务


主要设置文件


全局配置文件,位于文件:/etc/contab

系统默认的设置,位于目录:/etc/cron.*/

用户定义的设置,位于文件:/var/spool/cron/用户名

image.png



3.2.1管理crontab计划任务



编辑计划任务

crontab -e [-u 用户名] ## -u缺省时默认是针对当前用户,只有超级用户才可以用-u


查看计划任务

crontab -l [-u 用户名]


删除计划任务

crontab -r [-u 用户名]


crontab:守护进程会自动检查/etc/crontab文件,/etc/cron.d目录,及/var/spool/cron目录中的改变,如果发现配置有更改,他们就会被载入内存,所以当某个crontab文件改变后并不需要重新启动crond守护进程就可以设置生效


3.2.2crontab任务配置的格式



image.png


星期的数字为 0 或 7 时,都代表“星期天”的意思

image.png


时间周期设置 任务内容配置 命令一定要用绝对路径 例如:ls命令一定要用/usr/bin/ls ,可以which查看绝对路径

比如你要使用ls命令首先先要查看一下cp命令的位置(which cp)


image.png



总结



1、掌握程序、进程、线程


2、查看进程的命令:ps aux 或者ps -elf;top;pgrep;pstree;


3.如何查看子进程?pstree ap 或者 cd /proc/数字文件中的/stat


4.启动进程:前台启动;后台启动(命令最后加&)


查看后台任务列表:jobs


调用后台进程:fg 任务列表号


ctrl+z挂起


kill -9 进程号 PID


pkill -9 进程号 PID


killall 全部进程


at 小时:分钟 年-月-日


命令:ctrl D保存运行


atq 序号


atrm +序号


crontab -e -u 用户(不写用户默认当前用户)


crontab -l -u 用户


crontab -r -u 用户


格式:分 时 日 月 周 如果忘记可以查看cat /etc/crontab


*代表任意


, 不间隔的时间,比如1,2,4 可以是每隔周几


— 连续的时间 ,例如:1-7


/ 间隔的频率 1/* 每个一分钟 1/* 每隔一个小时 1/* 每隔一天 1/* 每隔一个月


相关文章
|
1天前
|
存储 安全 Linux
【Linux】详解进程通信中信号量的本质&&同步和互斥的概念&&临界资源和临界区的概念
【Linux】详解进程通信中信号量的本质&&同步和互斥的概念&&临界资源和临界区的概念
|
1天前
|
消息中间件 算法 Linux
【Linux】详解如何利用共享内存实现进程间通信
【Linux】详解如何利用共享内存实现进程间通信
|
1天前
|
Linux
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
|
1天前
|
Linux
【Linux】匿名管道实现简单进程池
【Linux】匿名管道实现简单进程池
|
1天前
|
Linux
【Linux】进程通信之匿名管道通信
【Linux】进程通信之匿名管道通信
|
1天前
|
Linux C++
【Linux】详解进程程序替换
【Linux】详解进程程序替换
|
1天前
|
存储 Linux Shell
Linux:进程等待 & 进程替换
Linux:进程等待 & 进程替换
27 9
|
1天前
|
存储 Linux C语言
Linux:进程创建 & 进程终止
Linux:进程创建 & 进程终止
23 6
|
1天前
|
存储 安全 Linux
Linux:进程地址空间
Linux:进程地址空间
20 10
|
1天前
|
存储 弹性计算 Linux
Linux:进程调度
Linux:进程调度
19 7