进程和作业管理

1.概念

(1)进程

        进程是指一个具有独立功能的程序的一次运行过程,也是系统进行资源分配和调度的基本单位,即每个程序模块和它执行时所处理的数据组成了进程。进程虽不是程序,但由程序产生。进程与程序的区别在于:程序是一系列指令的集合,是静态的概念,而进程则是程序的一次运行过程,是动态的概念;程序可以长期保存,而进程只能暂时存在、动态地产生、变化和消亡。进程和程序并不是一一对应的,一个程序可以包含若干个进程,一个进程也可以调用多个程序。

解释:进程是动态的,程序是静态的,当程序运行时就会占用CPU内存空间来执行程序,执行的动态过程就是进程

(2)作业


        正在执行的一个或多个相关进程可以形成一个作业。使用管道命令和重定向命令,一个作业可以启动多个进程。
根据作业的不同运行方式,可将作业分为两大类。

  • 前台作业:运行于前台,用户可对其进行交互操作。
  • 后台作业:运行于后台,不接受终端的输入,单向终端输出执行结果。

作业既可以在前台运行也可以在后台运行,但在同一时刻,每个用户只能有一个前台作业。

解释后台:后台是看不见的,就比如发QQ信息给别人,原理是发给服务器,再由服务器发给别人。但是后面的运行程序是人看不见的

2.进程的类型

  • 交互式进程:这类进程是由用户直接控制的,如文本编辑器、终端会话等。它们需要频繁地与用户交互。
  • 批处理进程:这类进程不需要用户交互,它们通常被提交到系统中,由操作系统的批处理系统自动执行,如打印作业。
  • 守护进程(Daemon):在系统启动时启动,并在后台运行,执行系统级别的任务,如网络服务、打印队列管理、日志记录等。

守护进程

        守护进程(Daemon)是一种在后台运行的特殊进程,通常没有控制终端,不会直接与用户交互。它们通常在系统启动时启动,并在系统关闭时终止。守护进程通常用于执行系统级别的任务,如网络服务、系统监控、日志记录等。

理解:守护进程就是在后台没有终端(可以理解为客户端)与他连接的进程,客户端想要和守护进程(服务)连接就必须连接服务的端口号。

步骤 1:启动守护进程并运行

在系统启动时,mysqld守护进程通常由系统的初始化脚本或服务管理器(如 systemd 或 init.d)启动。

一旦 mysqld 守护进程启动并运行,它会执行以下操作:

  1. 初始化数据库mysqld 会初始化数据库文件和必要的系统表。
  2. 监听端口mysqld 守护进程会监听默认的 MySQL 端口(通常是 TCP 端口 3306),等待来自客户端的连接请求。
  3. 处理查询:当客户端(如 MySQL 命令行工具、应用程序等)发送查询请求时,mysqld 会解析并执行这些查询,然后将结果返回给客户端。
  4. 维护数据完整性mysqld 负责维护数据库的数据完整性和安全性,包括处理事务、锁定、日志记录等。

步骤 2:守护进程日志记录

mysqld 守护进程会将运行时的信息记录到日志文件中,以供系统管理员查看。

  • 错误日志:错误日志通常位于 /var/log/mysql/error.log,记录了 mysqld 的启动、运行、错误和警告信息。
  • 查询日志:如果启用了查询日志,则所有发送到 mysqld 的查询都会被记录下来,通常位于 /var/log/mysql/query.log

步骤 3:守护进程配置

mysqld 的配置通常通过以下文件进行:

  • 主配置文件:通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf,包含了 mysqld 的主要配置选项,如端口号、数据目录位置、日志设置等。
  • 服务器端配置:可以通过命令行参数或配置文件来设置 mysqld 的行为。

步骤 4:守护进程安全性

为了确保数据库的安全性,mysqld 守护进程在安装后会执行以下安全措施:

  • 安全安装:安装过程中会提示用户设置 root 密码,并删除匿名用户和测试数据库。
  • 访问控制mysqld 使用基于角色的访问控制(RBAC)来限制用户对数据库的访问。

守护进程的特性

以下是 mysqld 守护进程的一些关键特性:

  • 无控制终端mysqld 在后台运行,不依赖于任何控制终端。
  • 长期运行mysqld 设计为长期运行,只在系统维护或升级时重启。
  • 系统服务mysqld 提供数据库服务,是许多应用程序依赖的核心服务。

        通过这个例子,我们可以看到 mysqld 守护进程是如何在后台运行,并管理 MySQL 数据库服务的。它负责处理客户端的请求,维护数据完整性,并且可以由系统管理员通过命令行工具进行管理。

    mysqld 守护进程会监听默认的 MySQL 端口(通常是 TCP 端口 3306),等待来自客户端的连接请求。只有正确输入端口号才能连接成功

3.查看进程信息

在Linux中,可以使用多种命令来查看和管理进程:

(1)ps:列出当前运行的进程

    ps(Process Status)是Linux和类Unix操作系统中用于查看当前运行进程的命令行工具。它提供了关于进程的详细信息,包括进程ID(PID)、父进程ID(PPID)、用户、CPU和内存使用情况等。

举例:查看当前用户的进程

ps

这个命令会显示当前用户会话中启动的进程。 

举例2:查看所有进程

ps -A

ps aux

这两个命令都会列出系统上的所有进程。

举例3: 查看进程的详细信息

ps -ef

这个命令会以全格式列出所有进程,包括用户、PID、PPID、启动时间等。

在这个输出中:

  • UID:运行该进程的用户ID。
  • PID:进程ID。
  • PPID:父进程ID。
  • C:CPU使用的百分比。
  • STIME:进程启动的时间。
  • TTY:进程启动的终端设备。
  • TIME:进程运行的总CPU时间。
  • CMD:启动进程的命令。

举例4:如果我们想要查看进程的树状结构,可以使用pstree命令,但这不是ps的选项:

pstree

    

    ps命令是一个非常灵活的工具,它有许多选项可以组合使用,以提供不同格式的输出和筛选进程的能力。在实际使用中,根据需要查看的信息不同,组合不同的选项是非常重要的。

举例5:pstree -p 显示进程号

举例6:pstree -u显示用户

(2)top:实时显示系统进程的动态。

    top 是一个在Linux和Unix系统中广泛使用的性能监控工具。它提供了实时的系统概览,包括进程、CPU使用情况、内存使用情况、交换空间、负载等关键系统信息。top 命令的输出是动态更新的,默认情况下,每隔3秒刷新一次。

  • 用法:top [选项]

交互模式

启动 top 后,你会进入一个交互式界面,其中你可以执行以下操作:

  • 按下 h 显示帮助菜单。
  • 按下 k 杀死一个进程。
  • 按下 q 退出 top
  • 按下 1 显示所有CPU的信息。
  • 按下 M 按内存使用量排序。
  • 按下 P 按CPU使用量排序。
  • 按下N 按以PID排序

下面是对这个输出各部分的解释:

  • 04:14:21 up 2:03, 2 users, load average: 0.00, 0.03, 0.05:(最上面部分)

    • 当前时间:04:14:21
    • 系统运行时间:2小时03分钟。
    • 当前登录用户数:2。
    • 系统负载平均值:1分钟、5分钟和15分钟内的平均负载分别为0.00、0.03和0.05。
  • Tasks: 205 total, 1 running, 204 sleeping, 0 stopped, 0 zombie:

    • 总进程数:205。
    • 正在运行的进程数:1。
    • 睡眠状态的进程数:204。
    • 停止的进程数:0。
    • 僵尸状态的进程数:0。
  • %Cpu(s): 25.0 us, 8.3 sy, 0.0 ni, 66.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st:

    • 用户空间占用CPU百分比:25.0%。
    • 内核空间占用CPU百分比:8.3%。
    • 改变过优先级的进程占用CPU百分比:0.0%。
    • 空闲CPU百分比:66.7%。
    • 等待IO的CPU时间百分比:0.0%。
    • 硬件中断占用CPU百分比:0.0%。
    • 软件中断占用CPU百分比:0.0%。
    • 虚拟机偷取时间:0.0%。
  • KiB Mem : 1862968 total, 106988 free, 865588 used,890392 buff/cache:

    • 总内存:1862968 KiB。
    • 空闲内存:106988 KiB。
    • 已用内存:865588 KiB。
    • 缓存:890392 KiB。

以下是一些常用的top命令选项:

  1. -d, --delay <seconds>:指定刷新时间间隔。默认情况下,top命令每3秒刷新一次屏幕,但你可以使用这个选项来改变它。例如,top -d 5将设置刷新间隔为5秒。

  2. -b, --batch:批处理模式。这个选项对于将top的输出重定向到文件或另一个命令非常有用,因为它关闭了交互式命令。

    示例:top -b > top_output.txt 将top的输出保存到top_output.txt文件中。

  3. -n, --iterations <number>:指定top命令运行的次数。与-b选项结合使用时,可以在批处理模式下指定top运行多少次后退出。

    示例:top -b -n 2 将top以批处理模式运行两次后退出。

  4. -p, --pid <pid>:监控特定的进程ID。如果你只对某个特定进程的资源使用情况感兴趣,可以使用这个选项。

    示例:top -p 1234 将只显示PID为1234的进程的信息。

  5. -u, --user <user>:监控特定用户的所有进程。你可以使用这个选项来查看属于某个用户的进程资源使用情况。

    示例:top -u alice 将显示用户alice的所有进程。

  6. -H, --threads:显示每个进程的线程信息。默认情况下,top显示的是进程信息,使用这个选项可以切换到线程级别的详细信息。

    示例:top -H 将显示所有线程的信息。

  7. -o, --sort <column>:按指定列排序。默认情况下,进程是按CPU使用率降序排序的,但你可以通过这个选项改变排序的列。

    示例:top -o %MEM 将按内存使用率降序排序进程。

  8. -s, --secure:以安全模式运行。这将禁止某些交互式命令,如杀死进程,这对于在公共终端上的使用很有帮助。

    示例:top -s 以安全模式启动top

4.结束进程

    (1)kill命令是Linux系统中用于发送信号到进程的一个基本命令行工具。它可以用来结束进程、中断进程、或者通知进程某些事件已经发生。

  • 用法:kill [选项/信号]  <进程ID>

常用选项

  • -l:列出所有可用的信号。
  • -s:指定发送的信号名称或编号。
  • -L:列出所有信号名称。

常用信号

  • 1 (HUP):挂起信号,通常用于重新加载配置文件。
  • 2 (INT):中断信号,相当于Ctrl+C。
  • 9 (KILL):强制终止信号,无法被捕获或忽略。
  • 15 (TERM):终止信号,请求进程终止。
  • 18 (CONT):继续执行信号,用于恢复暂停的进程。

举例:

kill 1234
举例2: 强制结束进程
kill -9 1234

一般操作: 

(2)killall:终止指定程序名的所有进程

killall -9 sshd

注意事项

  • 发送信号之前,你需要确保你有足够的权限来结束目标进程。通常,只有进程的所有者或root用户可以结束一个进程。
  • 在使用-9强制结束进程之前,最好先尝试使用-15请求进程正常终止,因为强制结束可能会导致数据丢失或不正常的程序退出。
  • 某些进程可能配置了信号处理程序,因此它们可以选择如何响应接收到的信号。例如,某些守护进程可能会在接收到HUP信号时重新加载配置文件而不是终止。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中国联通目前规模最大的境外综合性通信枢纽大楼

中国联通&#xff08;香港&#xff09;将军澳智 云数据中心&#xff1a;打造境外通信服务新标杆 在数字化浪潮席卷全球的今天&#xff0c;数据中心作为信息社会的基石&#xff0c;其重要性日益凸显。中国联通&#xff08;香港&#xff09;将军澳智 云数据中心&#xff0c;作…

基于django的代理商订单管理系统

基于Django的代理商订单管理系统——高效助力代理商管理 在如今企业业务日益复杂的环境下&#xff0c;如何高效地管理代理商订单成为不可或缺的环节。我们推出了一款基于Django框架的代理商订单管理系统&#xff0c;专为企业的订单管理及返利控制设计&#xff0c;为企业与代理…

uniapp-uniapp + vue3 + pinia 搭建uniapp模板

使用技术 ⚡️uni-app, Vue3, Vite, pnpm &#x1f4e6; 组件自动化引入 &#x1f34d; 使用 Pinia 的状态管理 &#x1f3a8; tailwindcss - 高性能且极具灵活性的即时原子化 CSS 引擎 &#x1f603; 各种图标集为你所用 &#x1f525; 使用 新的 <script setup> …

LLM - 配置 ModelScope SWIFT 测试 Qwen2-VL 图像微调(LoRA) 教程(2)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142882496 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 SWIFT …

编程练习7 5G网络建设

需要用到并查集的相关知识&#xff1a;可以参考如下链接 并查集详解&#xff08;原理代码实现应用优化&#xff09;-CSDN博客 #include<iostream> #include<algorithm> #include<vector>using namespace std;vector<int> split(string params_str) {…

观察者模式的思考

观察者模式由来 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;它的起源可以追溯到20世纪90年代初&#xff0c;由设计模式四人帮&#xff08;Erich Gamma, Richard Helm, Ralph Johnson 和 John Vlissides&#xff09;在其著作《设计模…

KTH576X在智能手表行业表冠产品中的应用方案

行业需求 随着移动技术的发展&#xff0c;许多传统的电子产品也开始增加移动方面的功能&#xff0c;比如过去只能用来看时间的手表&#xff0c;现今也可以通过智能手机或家庭网络与互联网相连&#xff0c;显示来电信息和新闻、天气信息等内容。这类产品主要是为消费者在不方便…

【父子线程传值TransmittableThreadLocal使用踩坑-及相关知识拓展】

文章目录 一.业务背景二.TransmittableThreadLocal是什么&#xff1f;三.问题复现1.定义注解DigitalAngel2.定义切面3.TransmittableThreadLocal相关4.线程池配置信息5.Controller6.Service7.测试结果8.问题分析9 解决办法及代码改造10.最终测试&#xff1a; 四.与 ThreadLocal…

Web集群服务-代理和负载均衡

1. 概述 1. 用户----->代理--->Web节点,后面只有一个节点,一般使用的是nginx代理功能即可 2. 后面如果是集群需要使用nginx负载均衡功能 2. 代理分类 代理分类方向应用正向代理用户(服务器)-->代理--->外部(某网站)服务器通过代理实现共享上网/访问公网反向代理用…

数据结构~AVL树

文章目录 一、AVL树的概念二、AVL树的定义三、AVL树的插入四、AVL树的平衡五、AVL树的验证六、AVL树的删除七、完整代码八、总结 一、AVL树的概念 AVL树是最先发明的自平衡二叉查找树&#xff0c;AVL是⼀颗空树&#xff0c;或者具备下列性质的二叉搜索树&#xff1a;它的左右子…

《微软飞行模拟2024》在飞行中可能占用高达180 Mb/s的互联网带宽

《微软飞行模拟2024》是一款要求相当高的游戏。 从理想的系统规格所需的高性能系统来看&#xff0c;该游戏目前在用户飞行和地形加载时使用的网络带宽高达 180 Mb/s。 这相当于每小时耗费高达 81 GB 的网络数据&#xff0c;对于有数据上限的用户来说简直就是噩梦。 数据上限通…

[Python学习日记-47] Python 中的系统调用模块—— os 与 sys

[Python学习日记-47] Python 中的系统调用模块 简介 os sys 简介 os 模块和 sys 模块提供了很多允许你的程序与操作系统直接交互的功能。下面将进行逐一介绍。 os 一、os.getcwd() 得到当前工作目录&#xff0c;即当前 Python 脚本工作的目录路径&#xff08;绝对路径&#…

芝法酱学习笔记(0.7)——harbor与SpringBoot容器化docker部署

前言 之前我们主要讲的jar包部署。使用jar包部署可能导致不同服务互相争抢资源&#xff08;隔离性&#xff09;&#xff0c;不同服务可能需要不同的jdk环境&#xff0c;有时也会造成困扰。故在微服务时代&#xff0c;我们通常使用docker部署 一、docker安装 docke相关的知识…

sherpa-ncnn 语言模型简单对比

在昨天把系统搞崩溃前&#xff0c;对sherpa-ncnn的中文模型做了一个简单的对比。这次使用的分别是sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13&#xff08;以下简称bilingual-zh-en-2023-02-13&#xff09;和sherpa-ncnn-streaming-zipformer-small-bilingual…

WPF自定义控件实现的几种方法

Windows Presentation Foundation (WPF) 是微软提供的一种用于构建 Windows 应用程序的开发框架。它以其强大的数据绑定、资源管理和可视化效果处理能力而闻名。在WPF中&#xff0c;自定义控件的实现是一个非常重要的方面&#xff0c;几乎所有的应用程序都会或多或少地需要自定…

哪款宠物空气净化器性价比高?希喂、米家和范罗士哪款更好?

这次我真的不是很想抱怨&#xff0c;是我男朋友真的很过分&#xff01;真的很过分&#xff0c;差点让我们两个分道扬镳。先听我说&#xff0c;这不是我和他都嫌家里太安静了吗&#xff0c;每天下班后两个人吃完饭就各玩各的手机&#xff0c;生活太无趣了&#xff0c;加上这几年…

【云从】五、负载均衡CLB

文章目录 1、负载均衡2、云负载均衡CLB3、CLB的组成4、CLB的应用场景 1、负载均衡 互联网发展早期&#xff0c;应用服务单机部署就足以负载所有用户的访问需求 如此&#xff0c;部署和运维都简单&#xff0c;但随着用户和访问量的提高&#xff0c;单台服务器的硬件性能是有上限…

【GESP】C++一级练习BCQM3044,字符形状输出

回到一级知识点&#xff0c;用给定字符按指定形状输出。 题目题解详见&#xff1a;https://www.coderli.com/gesp-1-bcqm3044/ 【GESP】C一级练习BCQM3044&#xff0c;字符形状输出 | OneCoder回到一级知识点&#xff0c;用给定字符按指定形状输出。https://www.coderli.com/…

鸿蒙开发 四十五 鸿蒙状态管理(嵌套对象界面更新)

当运行时的状态变量变化&#xff0c;UI重新渲染&#xff0c;在ArkUI中称为状态管理机制&#xff0c;前提是变量必须被装饰器修饰。不是状态变量的所有更改都会引起刷新&#xff0c;只有可以被框架观测到的更改才会引起UI刷新。其中boolen、string、number类型&#xff0c;可观察…

【项目安全设计】软件系统安全设计规范和标准(doc原件)

1.1安全建设原则 1.2 安全管理体系 1.3 安全管理规范 1.4 数据安全保障措施 1.4.1 数据库安全保障 1.4.2 操作系统安全保障 1.4.3 病毒防治 1.5安全保障措施 1.5.1实名认证保障 1.5.2 接口安全保障 1.5.3 加密传输保障 1.5.4终端安全保障 资料获取&#xff1a;私信或者进主页。…