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也可以)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/13665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络的基础理解

文章目录 网络的基础认识 网络协议协议分层OSI七层模型TCP/IP 五层/四层 模型 网络的基础认识 先来看下面几个问题 什么是网络&#xff1f; 网络就是有许多台设备包括计算机单不仅限于计算机&#xff0c;这些设备通过相互通信所组成起来系统&#xff0c;我们称之为网络所以如…

Gartner发布中国数据安全安全与风险管理领导者指南:将孤立的数据安全产品集成到数据安全平台中,实施一致的数据安全策略

在中国开展业务或与中国相关的组织面临着越来越多的数据安全风险和法规。安全和风险管理领导者必须采用风险优先的数据安全计划和投资&#xff0c;以响应监管要求&#xff0c;以增强数据驱动的数字创新能力。 主要发现 跨组织职能的分散的数据安全举措和不协调的利益相关者责任…

服务器c盘爆满了,这几种方法可以帮助C盘“瘦身”

我们在使用服务器的时候基本不会在C盘安装软件&#xff0c;那么用久了发现C盘满了&#xff0c;提示空间不足&#xff1f;那么这是怎么回事&#xff0c;为什么空间会占用这么快呢&#xff1f; 原因一&#xff1a; C盘满了&#xff0c;很可能是因为电脑里的垃圾文件过多。操作系…

薪资不公、晋升无望?动笔写一份申诉材料吧!

薪资不公、晋升无望&#xff1f;动笔写一份申诉材料吧&#xff01; 引言&#xff1a;每个努力工作的人都值得公平对待 在职场上&#xff0c;我们付出了汗水和智慧&#xff0c;期待着相应的回报——合理的工资和公正的晋升机会。然而&#xff0c;现实并不总是如此美好。当你感觉…

Python实现二维数组使用连接符 “ @ “ 和 “ | “ 拼接成字符串,然后再拆分成数组功能

要将二维数组使用连接符 " " 和 " | " 拼接成字符串&#xff0c;然后再拆分成数组&#xff0c;你可以使用以下代码&#xff1a; def join_str(array):joined_step_str " ".join([" | ".join(sub_array) for sub_array in array[1]…

OBS 源码解读——编码器

编码器 obs-encoder.h 主要包含 3个结构体定义&#xff1a;输入编码器数据&#xff1b;编码后数据&#xff1b;编码器定义 1个对外输出的注册编码器函数 输入编码器数据 /** Encoder input frame */ struct encoder_frame {/** Data for the frame/audio */uint8_t *data[M…

芯片设计公司外协ERP数字化运营:科技与管理的融合

随着信息技术的快速发展&#xff0c;ERP(企业资源计划)系统已经成为现代企业管理不可或缺的一部分。在芯片设计行业&#xff0c;由于产品的复杂性、技术的高要求以及市场的快速变化&#xff0c;外协ERP数字化运营显得尤为重要。 芯片设计公司的外协ERP数字化运营&#xff0c;主…

xxe漏洞--xml外部实体注入漏洞

1.xxe漏洞介绍 XXE&#xff08;XML External Entity Injection&#xff09;是一种攻击技术&#xff0c;它允许攻击者注入恶意的外部实体到XML文档中。如果应用程序处理XML输入时未正确配置&#xff0c;攻击者可以利用这个漏洞访问受影响系统上的敏感文件、执行远程代码、探测内…

AI大模型知识库与向量数据库:解锁智能问答新时代

随着AI技术的飞速发展&#xff0c;我们的世界正在经历一场前所未有的智能化变革。在这个变革中&#xff0c;AI大模型知识库与向量数据库的完美结合&#xff0c;为知识查询和用户问答领域带来了全新的体验。它们不仅提高了效率&#xff0c;更让问答变得智能、个性化&#xff0c;…

晶体振荡器

一、晶振与晶体区别 晶振是有源晶振的简称&#xff0c;又叫振荡器&#xff0c;英文名称是oscillator&#xff0c;内部有时钟电路&#xff0c;只需供电便可产生振荡信号&#xff1b;晶体是无源晶振的简称&#xff0c;也叫谐振器&#xff0c;英文名称是crystal&#xff0c;是无极…

机械臂与Realsense D435 相机的手眼标定ROS包

本教程主要介绍机械臂与 Realsense D435 相机手眼标定的配置及方法。 系统&#xff1a;Ubuntu 20.0.4 ◼ ROS&#xff1a;Noetic ◼ OpenCV 库&#xff1a;OpenCV 4.2.0 ◼ Realsense D435&#xff1a;librealsense sdk&#xff08;2.50.0&#xff09;、realsense-ros 功能包&…

Kafka-文件存储机制

Kafka概述 Kafka-文件存储机制 1. 分区&#xff1a; Kafka中的每个主题&#xff08;topic&#xff09;都可以分成一个或多个分区。 Topic是逻辑上的概念&#xff0c;而Partition是物理上的概念。 分区是消息的基本单元&#xff0c;每个分区都是一个有序的log日志文件。 Pr…

Linux网络配置全攻略:解读/etc/network/interfaces文件的精髓

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Linux网络配置全攻略&#xff1a;解读/etc/network/interfaces文件的精髓 前言文件结构与基本概念配置网络接口的常用参数高级网络配置技巧实用工具与调试技巧实战案例与最佳实践 前言 在我们的日常生…

【数据库基础】基本认识数据库--入门引导

文章目录 什么是数据库&#xff1f;主流数据库基本使用安装MySQL连接服务器服务器、数据库、表关系使用案例数据逻辑存储 MySQL架构SQL语句分类什么叫存储引擎 什么是数据库&#xff1f; 数据库是指在磁盘和内存中存储特定结构组织的数据。数据库通常用于存储于某个系统、组织或…

整理好了!2024年最常见 20 道 Redis面试题(三)

上一篇地址&#xff1a;整理好了&#xff01;2024年最常见 20 道 Redis面试题&#xff08;二&#xff09;-CSDN博客 五、Redis 的持久化机制有哪些&#xff1f; Redis 是一个内存中的数据结构存储系统&#xff0c;它支持多种类型的数据结构&#xff0c;如字符串、哈希、列表、…

Kylin系列

Kylin是一个开源的分布式分析引擎&#xff0c;主要用于在Hadoop/Spark等大数据平台上提供高性能的SQL查询接口和OLAP&#xff08;联机分析处理&#xff09;能力&#xff0c;以支持超大规模数据的查询和分析。以下是关于Kylin系列的详细解释&#xff1a; 基本概念与原理&#x…

基于springboot实现的校园博客系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

Mac SourceTree配置ssh git仓库

一、准备条件 1、Mac系统电脑 2、安装好SourceTree 3、获取ssh git仓库地址 二、配置步骤 1、打开终端命令行 ssh -t rsa -C "xxx""xxx"代表注册git仓库时&#xff0c;使用的用户名&#xff0c;可以是字符串也可以是邮箱地址。 如果遇到输入密码&#xf…

c语言如何向文件读取字符串

如何在c语言中&#xff0c;读取文件&#xff0c;不用一个字符一个字符的读取&#xff0c;而是整个读取字符串 这里就用到fgets语句 fgets(str,n,fp) 它的功能是从fp指向的文件里读取一个长度为n-1的字符串&#xff0c;并一次性存入到str字符数组里&#xff0c;如果成功就返回…

Java Memorandum

Java Memorandum 1 定义安全的集合2 collection集合用迭代器删除元素时避免并发修改异常3 异常捕获4 RequestBody和RequestParam和Parameter区别4.1 RequestBody4.2 RequestParam4.3 Parameter 1 定义安全的集合 void old() {ArrayList<Apple> apples new ArrayList<…