Linux–>进程管理

基本介绍

  1. 在Linux中, 每个执行程序都称为一个进程。每一个进程都会分配一个ID号(pid,进程号)
  2. 每个进程都可能以俩种方式存在的。分别是 前台后台,所谓前台进程就是用户目前可以在屏幕上操作的。后台进程 就是实际在操作但是屏幕是看不到的。
  3. 一般系统的服务都是以后台进程的方式存在,且常驻在系统中直到关机结束。

程序一旦运行并加载到内存就会产生进程

显示系统执行的进程

  • 基本介绍

ps命令查看目前系统中,有哪些正在执行,以及他们的执行状况。可以不加任何参数

ps -a       显示当前终端所有进程信息
ps -u       以用户的格式显示进程信息
ps -x       显示后台进程运行的参数

一般来说用法为

ps -aux | more 来查看进程信息
ps -aux | grep xxx  查看有没有sshd服务

ps内的信息解释

Linux-->进程管理

信息 描述 USER 进程执行用户 PID 进程号 %CPU 当前进程占用cpu百分比(单位kb) %MEM 占用物理内存的百分比(单位kb) VSZ 占用虚拟内存的百分比 TTY 终端名称,缩写 STAT 当前运行状态 START 代表进程开始执行的时间点 TIME 表示这个进程占用cpu时间 command 表示启动进程所使用的命令和参数,过长会被截断

关于STAT:

  1. S表示睡眠
  2. s表示该进程是会话的先导进程
  3. N表示进程有比普通优先级更低的优先级
  4. R表示正在运行
  5. D表示短期等待
  6. Z表示僵死进程(程序已经关闭但是内存未释放,需要定时清除)
  7. T表示被跟踪或者被停止

父子进程

在Linux中进程可以生成多个子进程,这个进程就叫父进程。

ps -ef 以全格式显示当前所有的进程。

-e 显示所有进程

-f 全格式

以全格式方式查看sshd的进程信息

ps -ef | grep sshd

Linux-->进程管理

查看ps -ef的全格式信息

ps -ef | more

Linux-->进程管理

ps -ef中信息详解

信息 描述 UID 用户ID PID 进程ID FPID 父进程ID C CPU用于计算执行优先级的因子,数值越大,表明进程是
CPU密集型运算

,执行优先级会降低。越小表面进程是
I/O密集型运算

,执行优先级越高 STIME 进程启动的时间 TTY 完整的终端名 TIME CPU时间 CMD 启动进程所用的命令和参数

终止进程kill和killall

  • 介绍:

如果某个进程执行一半需要停止。使用kill命令完成。

  • 基本语法:

通过进程号杀死进程

kill 选项 进程号

通过进程名杀死进程

killall 进程名

killall支持通配符,在系统因负载过大变得很慢时很有用。

kill常用选项

表示强迫进程立刻停止。

kill -9 进程号

案例:

  1. 踢掉某个非法用户
ps -aux | grep sshd 查看非法用户登录的进程号
kill 对应的进程号
  1. 终止远程登录服务sshd,在适当的时候重启sshd服务。
ps -aux | grep 查看sshd中 /user/sbin/sshd -D的进程号
kill sshd对应的进程号
/bin/systemctl start sshd.service 重启sshd服务

重启后进程号会发送变化
终止sshd服务后无法远程登录!

  1. 终止多个gedit
killall gedit

gedit进程代表的是,打开文本编辑器产生的进程,关闭后就相当于强制退出了文本编辑
killall会杀死父进程+子进程

  1. 杀死终端
ps -aux | grep bash     查看终端进程号
kill -9 终端对应的进程号

终端就是相当于cmd命令框
系统会对杀死终端操作认为是误操作,会无视,需要-9才能强制终止

pstree指令

查看进程树,更直观的查看进程的信息。

  • 基本语法
pstree 选项
  • 常用选项

-p 显示进程的PID

-u 显示进程的所属用户

服务管理

  • 介绍 服务管理本质就是进程,但是运行在后台的,通常会监听某个端口,等待其他程序的请求,比如(mysqld,sshd,防火墙等) 故我们又称为守护进程。Linux-->进程管理

service管理指令

service 服务名 [start|stop|restart|reload|status]

status是查看状态

在CentOS7.0后很多服务不再使用service而是systemctl了

还继续使用service管理的指令可在 /etc/init.d 目录中中查看

  • 查看服务名
setup

其中[]代表会随着系统自启 按q进去确定与取消选项处

服务的运行级别(runlevel)

  • Linux系统有7中运行级别(runlevel)常用的是3和5运行级别 说明 0 系统停机状态,默认运行级别不能设置为0,否则无法正常启动。 1 单用户工作状态,root权限,用于系统维护,禁止远程登录。 2 多用户状态(无NFS),不支持网络。 3 完全多用户状态,支持网络,登录后进入命令行模式。 4 系统未使用,保留。 5 X11控制台,登录后进入GUI模式 6 系统正常关闭并重启,默认不能设置为6,否则无法正常启动。
  • 开机流程

开机—>BIOS–>/boot—>systemd进程1–>运行级别—>运行级别对应的服务

运行级别的指令

在/etc/inittab下可以设置运行级别,或者使用指令设置运行级别。

查看当前运行级别

systemctl get-default

设置运行级别

systemctl set-default 运行级别.target

multi-user.target 是level 3
graphical.target是

chkconfig指令

  • 介绍:
  • 通过chkconfig 命令可以给服务器的各个运行级别设置 自动启动/关闭。
  • chkconfig 指令管理的服务在 /etc/init.d 查看
  • 在Centos7.0之后,多数服务使用systemctl管理了
  • chkconfig基本语法

查看全部服务在每个运行级别下的状态

chkconfig --list

查看具体服务在哪些运行级别是打开的哪些是关闭的

chkconfig 服务名 --list

设置服务在0~5的运行级别的状态是打开还是关闭

chkconfig --level n 服务名 on/off

每一个服务都有0~5六个运行级别,打开了对应的运行级别之后,他就会在对应的运行级别自启动并生效。
chkconfig设置后需要重启才能生效。

服务管理(2)

systemctl管理指令

基本语法(临时生效,重启就恢复)

systemctl [start | stop | restart | status ] 服务名

systemctl指令管理的服务在 /usr/lib/systemd/system中查看

systemctl设置服务的自启动状态

  1. 查看服务的开机启动状态(可以用grep过滤)
systemctl list-unit-files [| grep 服务名]
  1. 设置服务开机启动(永久生效)
systemctl enable 服务名
  1. 关闭服务开机启动(永久生效)
systemctl disable 服务名
  1. 查询某个服务是否自启动
systemctl is-enabled 服务名字

举例:查看当前防火墙状态

  1. 查看防火墙的服务名
ls -l /usr/lib/systemd/system | grep fire
  1. 查询防火墙服务当前状态
systemctl list-unit-files | grep firewalld
  1. 全名是firewalld.service,设置不能写一半fire必须写齐firewalld
  2. 关闭,启动,防火墙后,会立即生效
  3. 这种方式只是零时的生效,重启后还是会复原
  4. 如果希望永久生效要使用 systemctl enable|disable 服务名而不是systemctl start 服务名

防火墙可以简单理解为在监听端口前建立了一个墙。

外来程序要先访问防火墙才能进入端口。

如果防火墙没有打开对应端口就无法访问。

大概如图:

Linux-->进程管理

打开或关闭指定端口(firewall指令)

在真正的生产环境,防火墙必须是开启,故需要了解如何打开和关闭对应的端口。

打开端口

firewall-cmd --permanent --add-port=端口号/协议

关闭端口

firewall-cmd --permanent --remove-port=端口号/协议

打开或关闭后需要重载才能生效

重载

firewall-cmd --reload

查询端口是否开放

firewall-cmd --query-port=端口/协议

查看端口绑定的协议

netstat -anp | more

端口在 /etc/services中,可以自己设置或者进去查看

动态监控进程(top)

  • 介绍

top和ps命令类似,都是用来显示正在运行的进程。

与ps不同的是top可以在执行一段时间就更新正在运行的进程。

基本语法

top 选项
  • 选项说明

选项 功能 -d 秒数 指定top指令每隔几秒更新,默认3s -i 让top不显示任何闲置或者僵死的进程 -p 进程号 通过指定监控进程id来仅仅监控某个进程状态

top指令下内容详解

Linux-->进程管理

选项 解释 PID 进程号 USER 哪个用户在执行 %CPU 进程执行占cpu百分比 %MEM 占用物理内存的百分比(单位kb) TIME+ 进程在何时启动 COMMAND 启动进程所用的命令和参数

  1. 第一行
  2. top – 12:37:57代表当前系统时间
  3. 34 min是系统运行时间
  4. 2 users代表系统用户数量
  5. load average : 0.02,0.06,0.05 负载值,0.02+0.06+0.05三个值加起来 除 3 < 0.7 就没问题,> 0.7 就负载过大
  6. 第二行
  7. Tasks:324 total ,1 running,323 sleeping 0 stopped 0 zombie
    • 代表系统的任务数量有324个其中1个在运行,323个在休眠,0个停止了,0个在僵死状态
  8. 第三行

  9. %Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

  10. 0.0 us 代表 用户占用cpu为0.0,0.2 sy是系统占用cpu 0.2 ,99.7 id是空闲cpu

  11. 第四行

  12. KiB Mem : 2028116 total, 541176 free, 819908 used, 667032 buff/cache

  13. Mem是内存占用情况,总体大约2G,大约0.5G在空闲,大约0.8个G在使用,buff用了0.6G

  14. 第五行

  15. KiB Swap: 2097148 total, 2097148 free, 0 used. 965996 avail Mem

  16. SWAP分区,共2G,空闲2G,使用0G,可获取0.9G

top指令的交互操作

在执行完top 选项指令后可以在键盘上按对应的键对top显示的内容进行交互操作。

操作 功能 P 以CPU使用率排序,默认此项 M 以内存使用率排序 N 以PID排序 q 退出top 按u回车,然后输入用户 监控指定用户 按k再回车,输入要结束的进程号,回车 终止指定进程

监控网络状态(netstat)

  • 查看系统网络状态netstat

语法

netstat &#x9009;&#x9879;

常用选项

netstat -an &#x6309;&#x4E00;&#x5B9A;&#x987A;&#x5E8F;&#x6392;&#x5E8F;&#x8F93;&#x51FA;
netstat -p   &#x663E;&#x793A;&#x8FDB;&#x7A0B;&#x540D;&#x548C;&#x57FA;&#x7840;&#x53F7;

常用方法:

netstat -anp | more&#x6216;grep &#x6307;&#x5B9A;&#x8FDB;&#x7A0B;

netstat内容详解

Linux-->进程管理

选项 解释 Proto 协议 Local Address 本地地址 Foreign Address 外部地址 State 状态,ESTABLISHED代表建立连接,LISTEN代表正在监听,TIME_WAIT代表超时等待 Recv-Q 接受到数据 Send-Q 发生的数据

Local Address和 Foreign Address的关系

Linux-->进程管理

检测主机连接命令(ping)

主要是检测远程主机是否正常,或俩部主机之间的网卡。

基本语法

ping &#x5BF9;&#x65B9;ip

Original: https://www.cnblogs.com/wdadwa/p/Linux_Learning_09.html
Author: wdadwa
Title: Linux–>进程管理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611736/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • web 前端 基础HTML知识点

    B/S(Browser/Server):浏览器实现 优点: 规范、使用方便、本身实现成本低 容易升级、便于维护 缺点: 没有网络,无法使用 保存数据量有限,和服务器交互频率高、耗费…

    数据库 2023年6月16日
    078
  • 1_Html

    一. 引言 1.1 HTML概念 网页, 是网站中的一个页面, 是构成网站的基本元素, 是承载各种网站应用的平台. 通俗的说, 网站就是由网页组成的, 通常我们看到的网页都是以ht…

    数据库 2023年6月11日
    080
  • SQL99相较于SQL92在多表查询时的新语法

    1.自然连接 NATURAL JOIN SQL99中新增的自然连接相当于SQL92中的等值连接。它可以自动的查询两个表中 所有的相同字段,然后进行等值连接。 在SQL92中: SE…

    数据库 2023年6月16日
    089
  • Mysql8+数据库安装和使用

    一、Mysql的版本选择 Mysql目前分文社区版和企业版,社区版在技术方面会加入许多新的未经严格测试的特性,而企业版经过严格测试认证,更加稳定、安全、可靠,性能也比社区版好。社区…

    数据库 2023年6月14日
    083
  • 设计模式之工厂方法

    一、工厂方法:简单工厂违背了单一职责原则,而且不利于扩展,于是衍生了工厂方法模式,该模式能很好地解决对扩展开放、对修改关闭的需求。 二、实现思路 :对每一个对象都创建一个对应的工厂…

    数据库 2023年6月14日
    0124
  • 容器化 | 构建 RadonDB MySQL 集群监控平台

    上一篇文章我们演示了如何《在 S3 备份恢复 RadonDB MySQL 集群数据》,本文将演示在 KubeSphere[1] 中使用 Prometheus[2] + Grafan…

    数据库 2023年5月24日
    090
  • java-配置tomcat服务器启动出现闪退解决办法

    1.配置tomcat服务器注意的地方:1.1下载tomcat软件,选择绿色免安装版,解压即可使用。1.2tomcat服务器是java语言编写的,想要运行tomcat需要java环境…

    数据库 2023年6月11日
    0112
  • java读写锁

    工作遇到了金钱计算,需要用到读写锁保证数据安全。记录一下。 单纯读没有限制,读写、写写的时候会有安全问题。 _hashMap_存在并发线程安全问题,而 _hashtable_线程安…

    数据库 2023年6月16日
    088
  • MVCC – Read View的可见性判断理解

    读了 @SnailMann大佬【MySQL笔记】正确的理解MySQL的MVCC及实现原理 收益颇丰,非常感谢! 但对其中如何判断事务是否可见性还是不太理解,于是作了本文,在原博客基…

    数据库 2023年5月24日
    095
  • 【01】Maven依赖插件之maven-dependency-plugin

    1、analyze:分析项目依赖,确定哪些是已使用已声明的,哪些是已使用未声明的,哪些是未使用已声明的 2、analyze-dep-mgt:分析项目依赖,列出已解析的依赖项与dep…

    数据库 2023年6月9日
    094
  • InnoDB 中不同SQL语句设置的锁

    锁定读、UPDATE 或 DELETE 通常会给在SQL语句处理过程扫描到的每个索引记录上设置记录锁。语句中是否存在排除该行的WHERE条件并不重要。InnoDB不记得确切的WHE…

    数据库 2023年5月24日
    087
  • Hbase中(java.io.IOException: Could not locate executable nullbinwinutils.exe in the Hadoop binarie)

    报错信息如下: 结合大神分析,应该为本机使用Hbase时,没有配置其环境变量。 出处:https://www.cnblogs.com/jessezeng/p/5520915.htm…

    数据库 2023年6月11日
    096
  • MySQL基础_索引

    一、介绍 1.什么是索引? 在一般的应用系统中,读写比在10:1左右,插入操作和一般的更新操作很少有性能问题,在生产环境中,我们遇到的最多,也是最容易出现问题的,或者一些复杂的查询…

    数据库 2023年5月24日
    0110
  • leetcode 617. Merge Two Binary Trees 合并二叉树(简单)

    一、题目大意 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新…

    数据库 2023年6月16日
    079
  • docker部署redis集群

    docker部署redis集群 1.0 安装环境 1.1 安装Centos7 Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docke…

    数据库 2023年6月9日
    092
  • Mysql面试总结

    转载自:https://www.cxyxiaowu.com/16302.html Q1:MySQL 的逻辑架构了解吗? 第一层是服务器层,主要提供连接处理、授权认证、安全等功能。 …

    数据库 2023年5月24日
    0102
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球