文章目录
1.指令(instruction):
计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等。这些最基础的计算机动作被称为指令 (instruction)。
2.程序(program):
这样一系列指令的所构成的集合。通过程序,我们可以让计算机完成复杂的操作。程序大多数时候被存储为可执行的文件。这样一个可执行文件就像是一个菜谱,计算机可以按照菜谱作出可口的饭菜。
3.进程(process):
进程是程序的一个具体实现。只有食谱没什么用,我们总要按照食谱的指点真正一步步实行,才能做出菜肴。进程是执行程序的过程,类似于按照食谱,真正去做菜的过程。同一个程序可以执行多次,每次都可以在内存中开辟独立的空间来装载,从而产生多个进程。不同的进程还可以拥有各自独立的IO接口。
1.PS基础命令
参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
- -A :列出所有的进程(等价于-e)
- -w :显示加宽可以显示较多的资讯
- -au:显示较详细的资讯
- -aux:显示所有包含其他使用者的行程
- -a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
- -c:显示CLS和PRI栏位。
- -d:显示所有程序,但不包括阶段作业领导者的程序。
- -e:显示所有程序。
- -f:显示UID,PPIP,C与STIME栏位。
- -H:显示树状结构,表示程序间的相互关系。
- -u:<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
- -j:采用工作控制的格式显示程序状况
- -l或l:采用详细的格式来显示程序状况。
- -N:显示所有的程序,除了执行ps指令终端机下的程序之外。
2.PS应用场景
(1) ps -aux
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
root | 1 | 0.4 | 0.2 | 119788 | 5868 | ? | Ss | 09:20 | 0:03 | /sbin/init spl |
root | 2 | 0.0 | 0.0 | 0 | 0 | ? | S | 09:20 | 0:00 | [kthreadd] |
root | 3 | 0.0 | 0.0 | 0 | 0 | ? | S | 09:20 | 0:00 | [kworker/0:0] |
root | 4 | 0.0 | 0.0 | 0 | 0 | ? | S< | 09:20 | 0:00 | [kworker/0:0H] |
root | 6 | 0.0 | 0.0 | 0 | 0 | ? | S | 09:20 | 0:00 | [ksoftirqd/0] |
- USER-域指明了是哪个用户启动了这个命令
- %CPU-用户可以查看某个进程占用了多少CPU
- %MEM-内存使用率
- VSZ-虚拟内存大小:表示如果一个程序完全驻留在内存的话需要占用多少内存空间
- RSS-常驻集大小:指明了当前实际占用了多少内存
- STAT-显示了进程当前的状态:状态有很多中,Ss、Ss1、Ss+、S<、R+、S<s1、S<s
- stat 状态:
- “S”:进程处在睡眠状态(idle),但可以被喚醒(signal),表明这些进程在等待某些事件发生–可能是用户输入或者系统资源的可用性
- D不可中断 Uninterruptible(usually IO),不可被喚醒的睡眠狀態,通常這个程序可能在等待I/O的情況(ex>列印)
- R正在运行,或在队列中的进程
- T停止狀態(stop),可能是在工作控制(背景暫停)或除錯 (traced) 狀態;
- Z (Zombie)僵屍狀態,程序已經終止但卻無法被移除至記憶體外。
- W进入内存交换(从内核2.6开始无效)
- “X”:死掉的进程
- “L”:有些页被锁进内存
- “<”:高优先级
- “n”:低优先级
- “s”:包含子进程
- “+”:位于后台的进程组;
- “l”:多线程,克隆线程multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
- “WCHAH”:正在等待的进程资源
- START-行程开始时间
- TIME-执行的时间
- COMMAND-所执行的指令的名称和参数
(2) ps -aux | grep xxx
查看某个进程或者服务是否存在
通过如上方式,查到了2条关DXS相关服务的进程信息,第一条是目标数据,第二条是grep进程调用时候,输入的信息–color=auto DXS,所以也查询到了先关信息
(3) ps -ef | grep xxx
- -A:显示所有程序。
- -e :此参数的效果和指定"A"参数相同。
- -f:显示UID,PPIP,C与STIME栏位。
UID | PID | PPID | C | STIME | TTY | TIME | CMD |
---|---|---|---|---|---|---|---|
拥有者 | 程序ID | 父级ID | CPU使用的资源百分比 | 系统启动时间 | 登入者的终端机位置 | 使用掉的 CPU 时间 | 下达的指令 |
0 | 1 | 0 | 0 | 9:20上午 | ?? | 2:11.61 | /sbin/launchd |
5 | 60 | 1 | 0 | 9:20上午 | ?? | 0:02.16 | /usr/sbin/syslogd |
UID:程序被该 UID 所拥有
PID:就是这个程序的 ID
PPID:则是其上级父程序的ID
C:CPU使用的资源百分比
STIME:系统启动时间
TTY :登入者的终端机位置
TIME:使用掉的CPU时间。
CMD:所下达的是什么指令
(4) 查看进程是否在运行:S+ R+
S+代表的是休眠状态,且执行时间是13:52左右,大概执行了10分钟不到,但是上图中查询的时候已经是15:00之后了,说明这几个进程执行了10分钟之后都自动进入休眠状态了!
R+代表的是运行状态,Sl+是主进程的状态,两个R+是正在运行的副进程
4.服务(service)
服务相当于支持系统运行的一些必要程序,默默运行在系统后台的,他可以为应用程序提供一些更有特色的东西,比如播放MP3,开启一个播放MP3的服务,用户点击开始按钮通知服务开启,点击关闭按钮通知服务关闭,如果你禁用这个服务,那别人想播放MP3那是不行的,而且服务之间是有可能互相依靠的。
5.服务与进程?
有人回答说:你开启了哪个服务任务管理器里就会有哪个服务相对应的进程;
有人说:服务是每次开机会按照服务启动模式启动的进程的集合,服务可能包括很多进程。而且启动的进程可能是互相交叉的。
二、利用services命令
1.查看单个服务的运行状态:
service 服务名 status
如:[root@localhost ~]# service sshd status
openssh-daemon (pid 3701) 正在运行…
2.查看所有服务的运行状态:
service –status -all
文章来源:
https://blog.csdn.net/tanga842428/article/details/79040089
https://jingyan.baidu.com/article/fec4bce2479f05f2618d8b80.html