当前位置: 首页 > news >正文

【Linux】Linux入门实操——进程管理(重点)

1. 概述

  1. 在 LINUX 中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。=>windows => linux
  2. 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  3. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

 

2. 显示系统正在运行的进程

ps   // 查看当前系统正在运行的进程,以及运行状态

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

ps -aux  |  grep sshd,比如我看看有没有sshd服务 

 

参数含义:

  1. System   V   展示风格
  2. USER:          用户名称
  3. PID:              进程号
  4. %CPU:         进程占用CPU 的百分比
  5. %MEM:        进程占用物理内存的百分比
  6. VSZ:             进程占用的虚拟内存大小(单位:KB)
  7. RSS:             进程占用的物理内存大小(单位:KB)
  8. TT:                终端名称,缩写
  9. STAT:            进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R- 正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
  10. STARTED:      进程的启动时间
  11. TIME:            CPU时间,即进程使用CPU 的总时间
  12. COMMAND:         启动进程所用的命令和参数,如果过长会被截断显示

案例:

要求:  以全格式显示当前所有的进程,查看进程的父进程。查看sshd的父进程信息。
ps -ef   是以全格式显示当前所有的进程
-e        显示所有进程。-f全格式
ps  -ef | grep sshd
是BSD风格
UID:      用户ID
PID:      进程 ID
PPID:   父进程 ID
C:    CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高。

STIME:   进程启动的时间
TTY:       完整的终端名称
TIME:     CPU时间
CMD:     启动进程所用的命令和参数

3. 终止进程kill 和 killall

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill 命令来完成此项任务。

3.1 语法

kill   [选项]   进程号         // 通过进程号杀死/终止进程
killall   进程名称         //通过进程名称杀死进程,也支持通配符,在系统因负载过大变得很慢时有用


-9:  表示强迫进程立即停止

3.2 案例

案例1:  踢掉某个非法登录用户,把root账户踢出去
kill 进程号,比如kill 8306 


案例 2: 终止远程登录服务sshd,下次不能连接,在适当时候再次重启sshd服务
kill sshd 对应的进程号;    /bin/systemctl start sshd.service
案例 3: 终止多个gedit,演示killall gedit
案例4: 强制杀掉一个终端,指令kill-9 bash对应的进程号

4. 查看进程树pstree

pstree  [选项]


选项

-p:   显示进程的 PID
-u:  显示进程的所属用户

 

5. 服务管理 

1. 概述

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd 防火墙等),因此我们又称服务为守护进程,是Linux中非常重要的知识点。

  • service 服务名  [start  | stop | restart | reload | status]
  • 在CentOS7.0后很多服务不再使用service ,而是systemctl
  • service指令管理的服务在/etc/initd查看 

2. 查看服务名

方式1:  使用 setup -----> 系统服务  就可以看到全部。

方式2:   /etc/init.d看到service指令管理的服务
ls -l  /etc/init.d

3. 服务运行级别(runlevel)

Linux 系统有7种运行级别(runlevel): 常用的是级别 3 和 5

  • 运行级别0: 系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  • 运行级别1: 单用户工作状态,root权限,用于系统维护,禁止远程登陆
  • 运行级别2: 多用户状态(没有NFS),不支持网络
  • 运行级别3: 完全的多用户状态(有NFS),无界面,登陆后进入控制台命令行模式
  • 运行级别4: 系统未使用,保留
  • 运行级别5: X11控制台,登陆后进入图形GUI模式
  • 运行级别6: 系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

开机流程顺序:

4. chkconfig指令

通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭。chkconfig指令管理的服务在etc/init.d 查看。
注意: Centos7.0后,很多服务使用systemctl管理

chkconfig语法

查看服务  chkconfig  --  list  [ | grep  xxx]
chkconfig 服务名    --list
chkconfig --level  5   服务名    on/off 

chkconfig 重新设置服务后自启动或关闭,需要重启,使用指令 reboot 生效。  

案例:

对 network 服务进行各种操作,把network在3运行级别,关闭自启动
chkconfig --level 3 network off    // 把network 在3运行级别关闭
chkconfig --level 3 network on   // 把network 在3运行级别开启

5. systemctl管理指令

systemctl  [start | stop | restart | status]  服务名
systemctl 指令管理的服务在  /usr/lib/systemd/system  查看

systemctl 设置服务的自启动状态

systemctl list-unit-files [ | grep  服务名 ]   // 查看服务开机启动状态,grep可以进行过滤
systemctl enable   服务名        //  设置服务开机启动
systemctl disable   服务名       //  关闭服务开机启动
systemctl is-enabled    服务名    //  查询某个服务是否是自启动的

 

案例 

查看当前防火墙的状况,关闭防火墙和重启防火墙。

systemctl status firewalld;

systemctl stop firewalld;

systemctl start firewalld

关闭或者启用防火墙后,立即生效。[ telnet  IP  端口  即可]
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
如果希望设置某个服务自启动或关闭永久生效,要使用

systemctl  [enable | disable]  服务名

6. 打开或关闭指定端口

在正式的生产环境中,往往需要将防火墙打开,但问题来了,如果我们把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。比如80、22、8080等,这个又怎么做呢?

firewall 指令 

打开端口:   firewall-cmd --permanent  --add-port=端口号/协议
关闭端口:   firewall-cmd --permanent  --remove-port=端口号/协议
重新载入,才能生效:   firewall-cmd  --reload
查询端口是否开放:   firewall-cmd  --query-port=端口/协议

案例

  1. 启用防火墙,测试111端口是否能 telnet,不行
  2. 开放 111端口。 firewall-cmd --permanent --add-port=111/tcp;  需要firewall-cmd --reload
  3. 再次关闭 111 端口。firewall-cmd --permanent --remove-port=111/tcp; 需要firewall-cmd --reload

6.  动态监控进程

1. 概述

top 与ps 命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程。

2. 语法

top  [选项] 


-d   秒数  指定top命令每隔几秒更新。默认是3秒
-i    使top不显示任何闲置或者僵死进程。
-p   通过指定监控进程ID来仅仅监控某个进程的状态。

交互操作 

P     以 CPU 使用率排序,默认就是此项
M    以内存的使用率排序
N    以 PID 排序
q     退出 top 

各字段意思 

 

案例

案例 1监视特定用户,比如我们监控tom用户
top:  输入此命令,按回车键,查看执行的进程。
u:    然后输入“u”回车,再输入用户名,即可,
案例 2: 终止指定的进程,比如我们要结束tom 登录
top:   输入此命令,按回车键,查看执行的进程。
k:   然后输入“k”回车,再输入要结束的进程ID号
案例 3: 指定系统状态更新的时间(每隔10秒自动更新),默认是3秒
top  -d 10

7. 监控网络状态

netstat   [选项]


-an   //  按一定顺序排列输出
-p    //  显示哪个进程在调用

案例

请查看服务名为sshd的服务的信息。

netstat  -anp  |  grep  sshd

 

相关文章:

【Linux】Linux入门实操——进程管理(重点)

1. 概述 在 LINUX 中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号)。>windows > linux每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作&#xff0…...

Linux-Apache

文章目录 Apache基础配置 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2024年11月19日12点20分 Apache Web服务器用来实现HTTP和相关TCP连接的处理,同时负责所提供资源的管理…...

高危,Laravel参数注入漏洞安全风险通告

今日,亚信安全CERT监控到安全社区研究人员发布安全通告,披露了Laravel 参数注入漏洞(CVE-2024-52301)。在受影响的版本中,Application.php 文件的 detectEnvironment 函数直接使用了 $_SERVER[argv],但没有检查运行环境是否为 CLI…...

【Qt】使用QString的toLocal8Bit()导致的问题

问题 使用Qt发送一个Http post请求的时候,服务一直返回错误和失败信息。同样的url以及post参数,复制黏贴到postman里就可以发送成功。就感觉很神奇。 原因 最后排查出原因是因为参数中含有汉字而导致的编码问题。 在拼接post参数时,使用了…...

Android上运行Opencv(TODO)

在高通安卓平台上,确实可以通过 NDK 使用 OpenCV 并访问摄像头。NDK 提供了更高性能的计算能力,特别是在图像处理和计算密集型任务中,与 OpenCV 结合可以充分利用高通平台的硬件资源(如 NEON SIMD 指令集和 GPU 加速)。…...

动态IP黑白名单过滤的设计与实现(上篇设计思想)

文章目录 需求分析方案设计1、设计过程2、最终方案3、扩展知识 - 布隆过滤器 需求分析 一些恶意用户(可能是黑客、爬虫、DDoS 攻击者)可能频繁请求服务器资源,导致资源占用过高。因此我们需要一定的手段实时阻止可疑或恶意的用户&#xff0c…...

LeetCode 力扣 热题 100道(五)最长回文子串(C++)

最长回文子串 给你一个字符串 s,找到 s 中最长的 回文子串。 回文性 如果字符串向前和向后读都相同,则它满足 回文性 子字符串子字符串 是字符串中连续的 非空 字符序列。 动态规划法 class Solution { public:string longestPalindrome(string s) {i…...

Docker--Docker Registry(镜像仓库)

什么是Docker Registry? 镜像仓库(Docker Registry)是Docker生态系统中用于存储、管理和分发Docker镜像的关键组件。 镜像仓库主要负责存储Docker镜像,这些镜像包含了应用程序及其相关的依赖项和配置,是构建和运行Doc…...

maven手动上传jar到私服仓库:mvn deploy:deploy-file命令

一、场景 现需要将公司内部的jar包上传到私服仓库,供其他同事使用,此时就需要用到mvn deploy:deploy-file命令。 二、 mvn deploy:deploy-file命令 举个栗子: mvn deploy:deploy-file -DgroupIdorg.pttsql -DartifactIdpttsql -Dversi…...

【机器学习】机器学习中用到的高等数学知识-1.线性代数 (Linear Algebra)

向量(Vector)和矩阵(Matrix):用于表示数据集(Dataset)和特征(Feature)。矩阵运算:加法、乘法和逆矩阵(Inverse Matrix)等,用于计算模型参数。特征值(Eigenvalues)和特征向量(Eigenvectors)&…...

无插件H5播放器EasyPlayer.js网页web无插件播放器选择全屏时,视频区域并没有全屏问题的解决方案

EasyPlayer.js H5播放器,是一款能够同时支持HTTP、HTTP-FLV、HLS(m3u8)、WS、WEBRTC、FMP4视频直播与视频点播等多种协议,支持H.264、H.265、AAC、G711A、MP3等多种音视频编码格式,支持MSE、WASM、WebCodec等多种解码方…...

Idea中创建和联系MySQL等数据库

备注:电脑中要已下好自己需要的MySQL数据库软件 MySQL社区版下载链接: https://dev.mysql.com/downloads/installer/ 优点: 1.相比与在命令行中管理数据库,idea提供了图形化管理,简单明了; 2.便于与后端…...

【pytest】pytest注解使用指南

前言:在 pytest 测试框架中,注解(通常称为装饰器)用于为测试函数、类或方法提供额外的信息或元数据。这些装饰器可以影响测试的执行方式、报告方式以及测试的组织结构。pytest 提供了多种内置的装饰器,以及通过插件扩展…...

在Unity中使用Epplus写Excel

Overview 本文旨在帮助你快速入门,该库发展多年内容庞大(官方文档写的极好:https://github.com/EPPlusSoftware/EPPlus/wiki),有些功能在Unity环境可能你永远都不会使用. 官方的一个Demo: https://github.com/EPPlusSoftware/EPPlus.Samples.CSharp 如果你只有读的需求,可以…...

初识算法 · 模拟(2)

目录 前言: Z字形变换 题目解析 算法原理 算法编写 数青蛙 题目解析 算法原理 算法编写 前言: ​本文的主题是模拟,通过两道题目讲解,一道是Z字形变化,一道是数青蛙。 链接分别为: 1419. 数青蛙…...

【Java面试】—— 创建线程池的两种方式(执行流程、拒绝策略)(详细)

目录 一、ThreadPoolExecutor(推荐)(重点) 1、参数 2、执行流程 3、常用方法 4、任务拒绝策略 二、Executors(不推荐) 1、常用方法 2、存在的问题 一、ThreadPoolExecutor(推荐)(重点) 1、参数 使用指定的初始化参数创建一个新的线程池对象 public Thread…...

Docker在微服务架构中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Docker在微服务架构中的应用 Docker在微服务架构中的应用 Docker在微服务架构中的应用 引言 Docker 基本概念 1. 容器 2. 镜像 3…...

苹果ASA归因对接以及API接入

一、归因概要 广告归因,目的是用于衡量广告带来的激活用户的成本以及后续进一步的用户质量表现。 Apple Ads 广告平台是基于 App Store(站内广告),同时属于自归因平台(通常称为 SAN)。这两个因素&#xff…...

Git常用操作学习

目录 Git基础概述 1.1 什么是Git? 1.2 Git的优点Git工作流程 2.1 集中式工作流程 2.2 功能分支工作流程 2.3 Git Flow工作流程克隆仓库 3.1 使用git clone 3.2 克隆特定分支分支管理 4.1 创建分支 4.2 切换分支 4.3 合并分支 4.4 删除分支提交和推送更改 5.1 查看状…...

2.5D视觉——Aruco码定位检测

目录 1.什么是Aruco标记2.Aruco码解码说明2.1 Original ArUco2.2 预设的二维码字典2.3 大小Aruco二维码叠加 3.函数说明3.1 cv::aruco::detectMarkers3.2 cv::solvePnP 4.代码注解4.1 Landmark图说明4.2 算法源码注解 1.什么是Aruco标记 ArUco标记最初由S.Garrido-Jurado等人在…...

3步快速上手:用dupeGuru轻松清理重复文件,释放宝贵磁盘空间

3步快速上手:用dupeGuru轻松清理重复文件,释放宝贵磁盘空间 【免费下载链接】dupeguru Find duplicate files 项目地址: https://gitcode.com/gh_mirrors/du/dupeguru 你是否经常为电脑中堆积如山的重复文件而烦恼?照片、文档、音乐文…...

9.实战案例拆解

好的,我们开始。先别急着看那些“月入十万”的爽文,我这边先给你看一段我昨晚在调试一个树莓派Pico W的I2C总线时,在终端里敲出来的报错信息: [ERROR] I2C timeout: SDA line held low by device at 0x3C这条错误让我折腾了半小时。最后发现是传感器模块的电源纹波太大,导…...

Swift原生大语言模型推理引擎llmfarm_core.swift集成与优化指南

1. 项目概述:一个为Swift生态打造的本地大语言模型推理引擎 最近在折腾一个iOS上的AI应用,想把一些轻量级的开源大语言模型(LLM)直接跑在手机端。大家都知道,现在主流的LLM推理框架,像llama.cpp、ollama&am…...

Acode架构深度解析:移动端代码编辑器的技术突破与设计哲学

Acode架构深度解析:移动端代码编辑器的技术突破与设计哲学 【免费下载链接】Acode Acode - powerful text/code editor for android 项目地址: https://gitcode.com/gh_mirrors/ac/Acode 在移动设备成为主流开发工具的今天,开发者面临着一个核心痛…...

从零搭建自动化任务中心:mgks/automation-hub部署与实战指南

1. 项目概述:自动化工作流的“中央厨房”如果你和我一样,在开发、运维或者日常工作中,经常需要重复执行一系列命令、脚本或者任务,那么你肯定对“自动化”这个词有着深刻的渴望。从简单的文件备份、日志清理,到复杂的C…...

Laravel-Permission性能基准测试:与其他权限包的终极对比分析

Laravel-Permission性能基准测试:与其他权限包的终极对比分析 【免费下载链接】laravel-permission Associate users with roles and permissions 项目地址: https://gitcode.com/gh_mirrors/la/laravel-permission 在构建现代Web应用时,权限管理…...

DroidCam OBS插件终极指南:零成本将手机变身高清直播摄像头

DroidCam OBS插件终极指南:零成本将手机变身高清直播摄像头 【免费下载链接】droidcam-obs-plugin DroidCam OBS Source 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam-obs-plugin 还在为专业直播设备价格昂贵而烦恼?想用手机摄像头获得…...

网页项目之大五人格测试:认识真实的自己

大五人格测试:认识真实的自己 你是否曾好奇,自己的人格特质是什么?为什么有些人天生善于社交,有些人却更喜欢独处?为什么有人总是追求完美,有些人却随性自在? 心理学研究表明,人格的…...

RISC-V架构下轻量级LLM推理引擎的优化与部署实践

1. 项目概述:一个为RISC-V架构优化的轻量级LLM推理引擎最近在折腾边缘计算和嵌入式AI部署的朋友,可能都绕不开一个核心矛盾:大语言模型(LLM)能力虽强,但动辄数十亿甚至上百亿的参数规模,对计算资…...

5个场景告诉你:为什么你需要这款免费的窗口分辨率神器

5个场景告诉你:为什么你需要这款免费的窗口分辨率神器 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾遇到过这些困扰?游戏内分辨率选项有限,无法满足你对极致画质的…...