Linux进程与服务管理

1)进程介绍

  • 程序:存在于磁盘里的代码文件或软件(程序集合)。 [程序在磁盘里,躺平睡觉]

  • 进程:运行着的程序或软件,就叫进程. [存在于内存中,正在干活工作]

把磁盘中的程序拿出来放入内存中运行,运行的这个东西就叫进程。

  • 守护进程:【持续】运行的进程. 远程连接服务sshd也是守护进程

提供给客户服务的守护进程:一般会有端口(VNC 5900,远程桌面3389,ssh22)

2)进程管理

静态查看ps (ps命令主要用于查看某一时刻系统中的进程状态)

动态查看top (top命令是一个实时的进程监控工具)

  • ps命令用于列出执行ps命令的那个时刻的[进程快照],就像手机给进程照了一张照片

常用:

-e 显示所有进程※

-f 额外显示UID、PPID、C与STIME栏位※

常用命令:

ps -ef (企业:简易查看过滤进程。

[root@oldboy ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jun02 ? 00:00:06 /usr/lib/systemd/systemd --
system --des
root 2 0 0 Jun02 ? 00:00:00 [kthreadd]
root 4 2 0 Jun02 ? 00:00:00 [kworker/0:0H]
root 6 2 0 Jun02 ? 00:00:09 [ksoftirqd/0]
root 7 2 0 Jun02 ? 00:00:00 [migration/0]
root 8 2 0 Jun02 ? 00:00:00 [rcu_bh]
PID为1的是Linux第一个初始进程,C7:systemd,C6:init
输出信息中各列的说明如下。
UID:进程被该UID所拥有,程序运行必须要有用户,一般是【虚拟用户】。
PID:进程的标识号;Process ID
PPID:进程的父进程的标识号;
C:CPU使用的资源百分比;
STIME:进程开始的时间;
TTY :该进程是在哪个终端机上面运作,若与终端机无关,则显示?,
另外, tty1-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程;
TIME:进程所使用的总的CPU时间;
CMD:正在执行的命令行。

非常用命令

ps -aux  #BSD格式参数,使用a选项和x选项显示所有进程,使用u选项显示进程的用户信息。
​
-a 显示与终端相关的所有进程,包含每个进程的完整路径※
-u 显示进程的用户信息※
-x 显示与终端无关的所有进程※
[root@lan ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.3 128448  7124 ?        Ss   14:29   0:03 /usr/lib/systemd/sy
root          2  0.0  0.0      0     0 ?        S    14:29   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   14:29   0:00 [kworker/0:0H]
root          5  0.0  0.0      0     0 ?        S    14:29   0:00 [kworker/u256:0]
root          6  0.0  0.0      0     0 ?        S    14:29   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    14:29   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    14:29   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    14:29   0:01 [rcu_sched]
​
输出信息中各列的说明如下。
USER:该进程属于的用户;
PID :该进程的进程号;
%CPU:该进程使用掉的CPU资源百分比;*
%MEM:该进程所占用的物理内存百分比;*
VSZ :(Virtual Size)进程占用的虚拟内存量 (单位Kb);*
RSS :该进程占用的物理内存大小 (单位Kb);*
TTY :该进程是在哪个终端机上面运作的,若与终端机无关,则显示?,另外, tty1-tty6是本机上面登
入者进程,若为pts/0等,表示为由网络连接进主机进程;
STAT:该进程目前的状态
START:该进程被触发启动的时间;
TIME :该进程实际使用 CPU 运作的时间;
COMMAND:该进程的实际命令,[ 方括号 ] 属于内核态的进程。 没有 [ ] 的是用户态进程。。
​
STAT:该进程目前的状态,主要的状态包括
R :正在运行,或者是可被运行。
S :正在中断睡眠中,可被某些信号(signal) 唤醒。
D :不可中断睡眠。
T :正在侦测或者是停止了。
Z :已经终止,但是其父进程无法正常终止他,造成 zombie (疆尸) 进程的状态。
+ :前台进程。
l :多线程进程。
N :低优先级进程。
< :高优先级进程。
s :进程领导者。
L : 已将页面锁定到内存中。
虚拟内存:内存很小,很容易满,拿出一部分磁盘空间,当内存用,虚拟成内存。

总结:*

ps aux:查看进程占用系统资源以及进程运行状态等复杂信息时使用

a 显示与终端相关的所有进程,包含每个进程的完整路径※

u 显示进程的用户信息※

x 显示与终端无关的所有进程※

ps -ef:简单看看进程是否存在

-e 显示所有进程※

-f 额外显示UID、PPID、C与STIME栏位※

企业如何用?
查找占用cpu、mem、虚拟内存更多的进程,
分析进程的问题,解决问题,把占用资源降下来。
如果发现没有异常,还无法降下来,就增加资源。
运维人员维护服务器性能:CPU、内存、IO(磁盘)
安全人员:快速锁定异常进程。保护企业网站安全

3) pstree:显示进程状态树

安装软件包yum install psmisc -y

pstree命令以树形结构显示进程和进程之间的关系

选项说明:

语法:pstree  [选项]
-a 显示启动每个进程对应的完整指令,包含启动进程的路径、参数等  ##pstree -a #显示完整进程树
-c 显示的进程中包含子进程和父进程
-h 对现在执行的程序进行特别标注
-n 根据进程PID号来排序输出,默认是以程序名称排序输出的
-p 显示进程的PID
-u 显示进程对应的用户名称

4) top:实时显示系统中各个进程的资源占用状况***

语法:top   [选项]
-a 将进程按照使用内存排序
-b 以批处理模式显示进程信息,输出结果可以传递给其他程序或写入到文件中。
-c 显示进程的整个命令路径,而不是只显示命令名称
-d 指定每两次屏幕信息刷新之间的时间间隔(top -d 1)
-H 指定这个可以显示每个线程的情况,否则就是进程的总的状态 *
-i 不显示闲置或者僵死的进程信息
-n top输出信息更新的次数,完成后将退出top命令
-p 显示指定的进程信息(top -p 进程号) *
top执行结果

top必会快捷键指令

1 #查看系统核心总数, 类似于 lscpu(CPUs) 
q #退出top
M #按内存使用百分比排序输出
P #按CPU使用百分比排序输出
R #对已排序的列反转排序
###抓重点显示,有助于查看的指令。
x #高亮显示排序的列
z #以彩色信息展示
b #高亮显示处于R状态的进程
l,t,m #显示/隐藏前5行的数据输出

第一行:任务队列信息,同uptime命令的执行结果

top - 15:25:57 up 56 min,  2 users,  load average: 0.00, 0.01, 0.05
15:25:57  当前系统时间
up 56 min  系统已经运行了0天0小时56分。10年不用重启
2 users  当前有2个用户登录系统
load average: 0.00, 0.01, 0.05  【检查系统是否繁忙的重要且简单的指标】
load average: 平均负载情况  
0.00, 0.01, 0.05  分别代表最近1分钟、5分钟和15分钟的系统负载平均值
##假设CPU是5核,负载达到5就是繁忙的临界点。top后,按1键显示cpu核数

第二行:Tasks为任务(进程)

Tasks: 104 total,   2 running, 102 sleeping,   0 stopped,   0 zombie
Tasks 为任务(进程)
系统现在共有104个进程,其中处于运行状态的有2个,
102个在休眠(sleep),stoped状态0个,zombie状态(僵尸)的有0个。

第三行:CPU状态信息

%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
us (user)用户空间占用CPU的百分比(如:应用程序、执行命令)。*
sy (system)内核空间占用CPU的百分比(如:内核进程、硬件磁盘操作)。*
ni (nice)改变过优先级的进程占用CPU的百分比。
id (idle)空闲CPU百分比,数值越大,CPU越空闲。*
wa (wait)IO等待占用CPU的百分比。*
hi (hard Interrupts) 硬中断(Hardware IRQ)占用CPU的百分比。
si 软中断(Software Interrupts)占用CPU的百分比。
st 虚拟机占用CPU的百分比。

第四行:内存状态

KiB Mem :  1862788 total,  1195344 free,   199936 used,   467508 buff/cache
1862788 total    #内存一共多大
1195344 free     #可用内存,剩余内存
199936 used      #已经使用的内存
467508 buff/cache   #系统缓存和缓冲占用内存空间
buffer缓冲区: 内存的空间 写入缓冲区,批量将数据写入磁盘。
cache 缓存区: 内存的空间 读取缓存区,短时间重复的数据,放到缓存区,方便快速读取

第五行:swap交换分区信息,虚拟内存

KiB Swap:  2097148 total,  2097148 free,        0 used.  1504172 avail Mem
2097148 total   交换区总量
2097148 free    空闲交换区总量
0 used          使用的交换区总量
1504172 avail Mem   可用内存大小

第七行:给出的是各进程(任务)的状态监控。

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND  
946 root      20   0  273192   4868   3736 S  0.3  0.3   0:12.51 vmtoolsd 
PID 进程id
USER 进程所有者
PR 进程优先级
NI nice值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。*
RES 进程使用的、未被换出的物理内存大小,单位kb。*
SHR 共享内存大小,单位kb。*
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程。
%CPU 上次更新到现在的CPU时间占用百分比。*
%MEM 进程使用的物理内存百分比。*
TIME+ 进程使用的CPU时间总计,单位1/100秒。
COMMAND 进程名称(命令名/命令行)。

总结:查进程:

0.ps -ef #过滤进程

1.ps -aux #查看进程占用资源情况

2.top #动态查看进程

3.top -Hp进程号 ##查看进程运行细节

4.pstree -a ##查看进程的各种子进程

5)进程服务启动和关闭

1.进程的正常启动和关闭

启动关闭以及是否开机自启动

方式1:C7统一systemctl完全管理,包括重启系统
语法:systemctl 动作 服务名字 ##C7
systemctl list-unit-files  #查看开机自启动进程情况
​
动作:
start 启动
stop 停止
restart 重启
status 状态 #Active: active (running) 服务正在运行中  Active: inactive (dead) 服务已经停止运行
disable 禁止开机自启动
enable 设置开机自启动
​
服务名字:运行时候的进程名字
sshd
nginx
mairadb
​
方式2: C6 service只负责服务的启动关闭
service 服务名字 动作 ===等价/etc/init.d/服务名字 动作
##C6及以前/kali/ubuntu

2.nginx服务进程管理实践

安装软件包

yum install nginx -y ##安装

启动nginx进程

ps -ef|grep nginx|grep -v grep  ##检查进程是否启动
systemctl start nginx  ##启动nginx进程
ps -ef|grep nginx|grep -v grep  ##检查进程是否启动

检查端口是否开启

ss -lnt|grep 80

停止nginx服务

systemctl stop nginx  ##停止nginx进程
ps -ef|grep nginx|grep -v grep  ##检查进程是否停止
ss -lnt|grep 80  ##检查端口是否关闭

查看nginx服务状态

systemctl status nginx  #查看nginx服务状态
​
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; ## disabled服务目前被标记为 disabled,这意味着Nginx服务在系统启动时不会自动启动。
Active: inactive (dead) ##关闭状态;inactive" 表示服务没有在运行,而 "(dead)" 表示服务既没有运行也没有在启动的过程中,而是完全处于停止状态
Docs: http://nginx.org/en/docs/

设置nginx开机自启动

systemctl enable nginx  #设置开机自启动
systemctl disable nginx  #禁止开机自启动
chkconfig nginx on   ##设置开机自启动;service方式的开机自启动
chkconfig nginx off  ##禁止开机自启动;service方式

检查nginx是否开机自启动

systemctl list-unit-files|grep nginx  ##方法1
systemctl status nginx|grep able      ##方法2 (systemctl status nginx也可以)

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xlbb.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值