linux程序管理

(一)程序与进程基础

1. 基础概念

◦ 程序:静态的指令集合(如.rpm安装包)。

◦ 进程:动态的程序运行实例,有生命周期(如nginx服务进程),通过fork系统调用创建,父进程复制地址空间生成子进程。

◦ 线程:进程内的最小调度单位,依赖进程存在。

2. 关键区别

◦ 程序 vs 进程:程序是静态文件,进程是动态运行实例,同一程序可对应多个进程。

◦ 进程 vs 线程:进程独立分配资源,线程共享进程资源,一个进程可含多个线程。

(二)进程生命周期与管理

1. 生命周期

◦ 父进程通过fork创建子进程,子进程继承父进程的文件描述符、环境变量等资源。

◦ 子进程退出后若未被父进程回收,成为僵尸进程。

◦ CentOS 6 首个进程为init,CentOS 7+ 为systemd。

2. systemd 管理机制

◦ Unit 类型:.service(服务)、.target(运行级别)、.timer(定时器)等,存储于/usr/lib/systemd/system。

◦ 运行级别:multi - user.target(字符界面,对应级别3)、graphical.target(图形界面,对应级别5),通过systemctl set - default切换。

◦ 常用命令

◦ 服务控制:systemctl start/stop/restart/status [服务名]。

◦ 开机自启:systemctl enable/disable [服务名]。

◦ 查看默认运行级别:systemctl get - default。

(三)软件包管理

1. 常见类型

◦ RPM包:红帽系(CentOS/RedHat),需手动处理依赖(命令:rpm、yum、dnf)。

◦ DEB包: Debian系(Ubuntu),依赖管理工具为apt。

◦ 源码包:需编译安装(步骤:configure→make→make install),需提前安装gcc、make环境。

◦ 二进制包:直接运行.bin文件(如JDK安装)。

2. RPM 命令核心操作

◦ 查询已安装包

◦ rpm -q [包名]:检查是否安装。

◦ rpm -ql [包名]:查看安装路径。

◦ rpm -qc [包名]:查看配置文件位置(通常在/etc/)。

◦ 安装/卸载

◦ rpm -ivh [包路径]:安装(-v显示详细过程,-h显示进度条)。

◦ rpm -e [包名] --nodeps:强制卸载(忽略依赖)。

3. YUM 管理(自动解决依赖)

◦ 配置文件

◦ 源文件:/etc/yum.repos.d/*.repo(如阿里云源)。

◦ 本地源配置:指定baseurl=file:///mnt,需包含repodata目录。

◦ 常用命令

◦ yum install [包名] -y:非交互式安装。

◦ yum clean all/yum makecache:清空/生成缓存。

◦ yum list:查看可用包列表。

(四)系统启动流程(UEFI+GRUB2+systemd)

1. 核心阶段

◦ UEFI 初始化:硬件自检,定位启动设备(efibootmgr管理启动项)。

◦ GRUB2 引导:加载内核(vmlinuz)和初始化镜像(initramfs),配置文件/boot/grub2/grub.cfg。

◦ 内核初始化:挂载根文件系统为只读,initramfs提供驱动支持。

◦ systemd 启动:PID=1,启动默认target(如multi - user.target),并行启动服务。

◦ 用户登录:字符界面(getty)或图形界面(GDM/LightDM)。

2. 故障排查

◦ GRUB 损坏:用Live CD重建grub2 - install /dev/sda。

◦ 内核参数修改:GRUB界面按e,添加systemd.unit=rescue.target进入单用户模式。

◦ 文件系统只读:执行fsck /dev/sdaX检查修复磁盘。

(一)问题速答

1. 如何查看已安装软件包的配置文件路径?

◦ 答:rpm -qc [软件名](如rpm -qc httpd)。

2. YUM 配置本地源时,路径需包含哪个关键目录?

◦ 答:需包含repodata目录(存储RPM包元数据)。

3. systemd 中如何设置默认运行级别为字符界面?

◦ 答:systemctl set - default multi - user.target。

4. 编译安装源码包的三个关键步骤?

◦ 答:./configure --prefix=路径→make→make install(需提前安装gcc、make)。

5. 僵尸进程产生的原因?

◦ 答:子进程退出后,父进程未调用wait/waitpid回收资源。

操作注意事项

1. RPM 卸载风险:使用--nodeps强制卸载可能破坏依赖关系,导致其他服务异常。

2. 源码安装限制:编译安装的软件默认不被systemd管理,需手动创建服务单元文件。

3. YUM 源优先级:多个源配置时,enabled=1的源生效,注意避免版本冲突。

4. GRUB 修改安全:直接编辑grub.cfg易出错,建议通过grub2 - mkconfig生成配置。

5. systemd 服务重载:修改服务配置后,需执行systemctl daemon - reload重新加载配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值