什么是程序:没有运行的代码就是程序
什么是进程:症状运行的代码就是进程
线程:进程的真正执行者
服务:既可以在操作系统内部或者依赖于网络环境运行的一种软件组件,提供特定的功能或服务,一般在后台运行,比如说接受请求,处理数据,执行操作,服务可以是系统自带的,firewalld,也可以是第三方基于Linux系统开发的应用程序,例如:http nginx mysql 长期运行。
服务是可以通过端口号进行通信
服务之间可以互相访问
服务是以进程的方式进行运行的,服务可以自行分配资源,也可以通过管理员限制资源的使用
进程:操作系统分配给运行程序的资源单位,
- 要么在代码中限制了资源的使用,写死了进程所占用的系统资源
- 系统自动分配
- 进程之间是相互隔离的,彼此之间是不能访问内存空间
相同点:
都是特定功能的软件,服务也是以进程的方式在系统运行,都可以调整对系统资源的使用
区别:
进程之间一般不能互相访问,也就是说不能通过传统的ip端口进行通信。只能通过系统提供的机制:例如:共享内存,信号等等,服务是可以通过定义的端口,端口和协议与其他组件进行通信
服务和进程本质上再linux上是一回事,都是以进程的形式展示,区别:服务是第三方,进程大部分就是系统自带的
父进程和子进程:
systemd 1
init 1
基于父进程创建的进程:优先父进程先启动——>启动子进程,子进程运行的资源由父进程提供分配资源
结束运行:要子进程先结束————>父进程要回收子进程的资源之后,父进程才会终止
ps查看进程的命令,静态的统计进程信息
a表示显示所以终端上的进程,包括其他用户的进程
u:列出进程的用户
x:显示所有终端的信息
User:进程的用户
pid:进程的id
stat D:不氪中断的休眠状态,
R:就是正在运行,
S:处于休眠状态,可被唤醒,
T:停止状态,也可能是出于后台暂停,或者处于调试状态
Z:僵尸进程,父进程已经终止,但是子进程还在运行,就变成了僵尸进程
<高优先级
N低优先级
L游戏页被锁进内存
s包含子进程
+位于前台的进程组
l 多线程,克隆线程 multi-threaded
ps -elf
e:显示系统内的所有进程信息
l:长格式显示进程的信息
f:使用完整格式显示进程信息
僵尸进程:父进程先走了,子进程还在,没人回收子进程的资源了,就变成了僵尸,僵尸进程所占的内存和cpu都很小,一般情况下无伤大雅,如果多了,看的不顺眼。
那就kill终止进程,杀死进程
kill-9 加上uid号,强制终止进程
kill命令,只是传递一个信号,由内核来处理,
-9 传递一个强制终止的信号
kill如果什么都不带,那就是-15 告诉内核和处理器,这个进程需要被终止
动态查看进程信息:,top
top:动态查看进程信息,信息会不断的更新
us:表示用户占用
sy:内核占用
ni:优先级调度占用
id:空闲cpu,要了解空闲的cpu的百分比,主要看%id部分
wa:磁盘读写性能,iostat--查看读写性能
hi:1分钟的cpu使用率
si:5分钟的cpu使用率
st:15分钟的cpu使用率
PID 进程id
USER 进程所有者的用户名
PR 优先级 --系统优先级
NI 谦让度值
VIRT 进程使用的虚拟内存的总量,单位kb
RES进程使用的物理内存的大小,单位:kb
SHR 共享内存大小,单位kb
S进程状态
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+ 进程使用的CPU时间的总计,单位1/100秒
COMMAND 命令名/命令行
top中使用的常用命令:
c:根据CPU使用百分比大小进程排序
ctrl+c/q:退出top程序
数字1:显示CPU个数和状态
top -b -n 1:表示值运行一次即可退出
ptree查看进程的线程
-p显示进程id
-u显示进程的用户
pu一块用,既显示进程,又显示用户名
pgrep主要作用是根据进程名来查找对应的PID
pgrep kill -a 进程名和pid
pgrep kill -c 数量
pgrep kill -f 匹配进程名及其参数
jobs 查看后台进程的状态信息
-l,显示所有后台进程的PID
-p 显示所有后台进程的进程组ID
-n 仅显示正在运行的后台进程
-s仅显示已停止的后台进程
ctrl+z 放到后台并停止运行
后台运行服务
:cp -a /mnt/ /opt/ & (&后台运行符)
fg 1(序号,1是把后台调到前排,2是把前排调到后台) 相当于把他调到前排进行
tty:tty1表示打开的是图形化界面的终端,2-6都是字符界面
pts:远程连接工具连接到系统的,xshell,moba等,越早登录的远程工具,数字越小
crontab命令
是由5个*组成的
* * * * *,
第一个*:分(0-59)
第二个*:时(0-23)
第三个*:日(1-31)
第四个*:月(1-12)
第五个*:周(0-7,0和7都是星期天)
*表示的是任意时间
,表示间隔的多个不连续的时间点
1,3,5 * * * * (表示第一分钟,第三分钟,第五分钟各执行一次)
-表示连续的时间范围2-10 * * * *(2-10分钟都执行)
/表示间隔时间频率:*/10 * * * * (每十分钟执行一次)
30 8 1 3 *(3月份的第一天的,早上8点半,执行一次)
*/10 8-10 1 * * (3月份的第一天的,早上8点半,执行一次)
crontab -e -u root(给指定用户root创建指定任务),哪个用户来执行定时任务
contab -l 展示root用户这个当前目录的定时任务
contab -l -u root (查看用户的指定定时任务)
contab -e -u root (修改定时任务)
crontab -e (进去了,不需要哪个就删哪个)
文章详细阐述了Linux系统中的程序、进程和线程的概念,以及服务的定义和运行方式。它强调了服务作为进程的执行者,通常在后台运行,提供特定功能,并可以通过端口通信。此外,文章还讨论了进程的资源管理和状态,如父进程与子进程的关系,以及如何使用`ps`和`top`命令监控进程。最后,提到了`crontab`用于设置定时任务的机制。
2016

被折叠的 条评论
为什么被折叠?



