Linux 程序管理

article/2025/8/29 12:06:34

一、Linux程序与进程

1、程序,进程,线程的概念

  • 程序:是一组指令及参数的集合,按照既定的逻辑控制计算机运行用来完成特定任务,是静态的;

  • 进程:是运行着的程序,是操作系统执行的基本单位,是程序运行的过程, 是动态的,是有生命周期及运行状态的。是操作系统分配内存、CPU时间片等资源的基本单位。

  • 线程:是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。

2、程序和进程的区别

  • 程序是静态的,它只是一组指令的集合,不具有任何的运行意义。而进程是程序运行的动态过程;

  • 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程;

  • 进程还具有并发性和交往性,而程序却是封闭的。

3、进程和线程的区别

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发拥有多个线程,而一个线程同时只能被一个进程所拥有;线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行。

二、Linux进程基础(生命周期)

1、进程生命周期

  • 父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID(PID),PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程。

  • 所有进程都是第一个系统进程的后代:在centos6中,第一个系统进程是init,而在centos7中,第一个系统进程是systemd。

2、父子进程的关系

  • 子进程由父进程产生,在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。

本地yum源

利用本地存在的软件包路径

file://localPath(绝对路径)【路径下要包含“repodata(包含rpm包的元数据)”目录】
网络yum源利用网络存储的软件包路径http://域名/Path #不常用https://域名/Pathftp://域名/Path  #不常用

5、yum命令语法

子命令(command)

交互式安装:yum install 软件名

6、源码包(编译)安装

需要依赖gcc和make环境配置:cd 源码包的解压路径;./configure --prefix=安装路径(/usr/local/nginx)编译:make安装:make install

  • 案例

nginx编译安装

7、二进制安装

只需要运行bin文件

jdk-6u14-linux-x64.bin./jdk-6u14-linux-x64.bin

四、Linux操作系统启动流程详解

Linux启动流程是从按下电源键到用户登录的完整过程,分为传统BIOS+MBR和现代UEFI+GPT两种模式。主流系统(如CentOS 7+/Ubuntu 18.04+)通常使用 UEFI + GRUB2 + systemd 组合

2、启动流程核心阶段

1. 电源与固件阶段

UEFI/BIOS初始化

  • 硬件自检(POST, Power-On Self-Test)

  • UEFI特点:图形化界面、支持GPT分区、独立于OS的Shell环境

  • 定位启动设备:读取NVRAM中的启动项(efibootmgr命令可管理)

2. 引导加载程序(Bootloader)

GRUB2 核心作用

配置文件路径:/boot/grub2/grub.cfg(由grub2-mkconfig生成

3. 内核初始化

内核解压与初始化

4. systemd 初始化进程
  • 首个用户态进程

5. 用户登录阶段

终端登录

  • getty 服务生成终端(/etc/systemd/system/getty.target.wants/

  • 调用login验证用户身份

图形化登录

  • Display Manager(如GDM、LightDM)启动X/Wayland会话

3、故障排查与调试技巧

1. 常见启动问题
故障现象可能原因解决方法
GRUB Rescue> 提示符引导分区损坏/配置丢失使用Live CD重建grub
Kernel panic驱动缺失/根文件系统错误检查initramfs是否包含所需驱动
systemd启动卡死服务依赖死锁添加systemd.unit=emergency.target内核参数
文件系统只读fsck未通过或磁盘错误手动运行fsck /dev/sda1
2. 救援模式操作
在GRUB界面添加启动参数:
systemd.unit=rescue.target   # 单用户模式(需root密码)
systemd.unit=emergency.target # 紧急模式(只挂载根文件系统)重新挂载根文件系统为读写:
mount -o remount,rw /

五、systemd管理机制

init进程是所有进程的父进程,systemd实际上是一种管理init的软件。只能管理rpm安装的

units存储路径/usr/lib/systemd/system


http://www.hkcw.cn/article/hGNGDdPXKs.shtml

相关文章

Android Gnss模块初步整理

一. 概述: Android的Gnss功能分布在App层和Framework层,App层主要调用LocationManager,通过Binder调用请求Framework的LocationManagerService服务,注册回调函数等: 1. // 获取Fw的LocaitonManagerService locManager (Location…

【学习笔记】Transformer

学习的博客(在此致谢): 初识CV - Transformer模型详解(图解最完整版) 1 整体结构 Transformer由Encoder和Decoder组成,分别包含6个block。 Transformer的工作流程大体如下: 获取每个单词的em…

AmazonMQ:化解消息队列运维难题的云解决方案

作者:[MOMO] | 深度求索科技专栏 | 2025年5月29日 一、痛点直击:消息队列的运维之痛 当你的微服务架构因订单激增而崩溃,当RabbitMQ集群半夜突发故障,当Kafka运维成本吞噬团队精力——消息中间件的运维复…

Linux日志管理

目录 一、Linux日志系统概述 1.1 日志的重要性 1.2 日志分类 二、核心日志管理工具 2.1 syslog(传统系统日志) 2.1.1 配置文件 2.1.2 配置语法 2.1.3 优先级说明 2.1.4 应用场景 2.2 rsyslog(增强型系统日志) 2.2.1 核…

Mac系统下,利用wget批量下载ICESat-2测高内陆水位高数据ALT13

首先在NASA地球数据网站中下载测高的数据下载链接文件: Earthdata Search 这是一个txt文件,提供了每一个文件的下载链接: 为了批量下载这些文件,我在mac系统中使用wget工具。 安装wget(如果未安装)&…

传统呼叫中心系统升级的必要性

据了解,一些老企业或是政务行业,服务型的业务场景还在使用十几年前的呼叫中心系统,经常会出现一些问题,这种情况下是否需要升级到新一代呼叫中心系统呢? 传统的呼叫中心系统采用程控电话交换机,带有基础的I…

大话软工笔记—知识体系分解与归集

1. 知识体系分解 软件工程知识体系有两个分解方向,横向是方向工程分解,纵向是工作分解。 1.1 工程分解 在设计工程部分,工程分解有概要设计、详细设计、应用设计三个阶段。 概要设计 基于需求分析的成果,对未来业务的整体进行…

MySQL的基本架构

1. MySQL基本架构 1.1. MySQL架构 MySQL 可以分为 Server 层和存储引擎层两部分。 1. Server 层(上层) 作用:处理所有的通用功能,与存储引擎无关。 包含模块: 连接器(Connection)&#xff…

DeepSeek R1-0528 新开源推理模型(免费且快速)

DeepSeek推出了新模型,但这不是R2! R1-0528是DeepSeek的最新模型,在发布仅数小时后就在开源社区获得了巨大关注。 这个悄然发布的模型DeepSeek R1-0528,已经开始与OpenAI的o3一较高下。 让我来详细介绍这次更新的新内容。 DeepSeek R1-0528 发布 DeepSeek在这次发布中采…

杏仁海棠花饼的学习日记第十四天CSS

一,前言 第二天,今天看CSS。 二,CSS简介及导入方式 CSS简介 CSS(层叠样式表,Cascading Style Sheets)是一种用于描述 HTML 或 XML(包括 SVG、XHTML 等)文档呈现效果的样式语言。…

尚硅谷redis7 74-85 redis集群分片之集群是什么

74 redis集群分片之集群是什么 如果主机宕机,那么写操作就被暂时中断,后面就要由哨兵进行投票和选举。那么一瞬间若有大量的数据修改,由于写操作中断就会导致数据流失。 由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行…

【Linux笔记】——进程间关系与守护进程

🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:linux 🌹往期回顾🌹: 【计算机网络】基于TCP进行socket编程——实现客户端到服务端远程命令行操作 🔖流水不争&#xf…

OSI 七大层详解

一、应用层 人与电脑相互沟通的桥梁,该层协议定义了应用进程之间的交互规则,通过不同的应用层协议为不同的网络应用提供服务。 二、表示层 定义数据格式(比如.pdf .txt)、加密解密、压缩解压缩 三、会话层 建立、管理和终止链…

Vue的生命周期

一、生命周期是什么 生命周期(Life Cycle)的概念应用很广泛,特别是在政治、经济、环境、技术、社会等诸多领域经常出现,其基本涵义可以通俗地理解为“从摇篮到坟墓”(Cradle-to-Grave)的整个过程在Vue中实…

如何用Go创建一个 deployment 到容器拉起来的全流程

整体流程概述: 认证与配置: 连接到Kubernetes集群。创建Deployment对象: 构建一个appsv1.Deployment结构体,定义Pod的模板、副本数量、选择器等。发送创建请求: 使用Kubernetes Go客户端库将Deployment对象发送到API服…

echarts主题切换实现

文章目录 一、实现方式1.实现思路2.指定主题3.设置图表背景透明 二、具体实现1.监听与销毁2修改主题色细节 参考链接 一、实现方式 场景: 首先是我的项目有不同主题色,切换主题时候想要将echarts的图表主题色也一并更改,暂时只设置’light’和’dark’…

如何在 Ubuntu 24.04 服务器上安装 Apache Solr

Apache Solr 是一个免费、开源的搜索平台,广泛应用于实时索引。其强大的可扩展性和容错能力使其在高流量互联网场景下表现优异。 Solr 基于 Java 开发,提供了分布式索引、复制、负载均衡及自动故障转移和恢复等功能。 本教程将指导您如何在 Ubuntu 24.…

从零开始的云计算生活——第十四天,困难重重,安全管理。

一故事背景 在前面的基本无操作内容后,来到了大头内容,安全管理!其中的防火墙相关的内容更是重中之重,要好好掌握,熟练运用。 二SELinux安全上下文 1SELinux 简介 a. SELinux(Security-Enhanced Linux&…

UDP编程

udp是无连接的,没有listen 与 accept。 bind 服务端一定需要bind,告知别人自己的ip和port。 客户端可以不bind,在发送数据时候可以随机分配,客户端推荐bind(与tcp不同,udp本身无连接)。 注意&am…

【计网】分片

MF DF MAC帧 MTU 首部数据载荷 片偏移是整数