Linux系统管理与进程任务管理方式

2025-08-18 09:50

本文主要是介绍Linux系统管理与进程任务管理方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用...

引言

Linux作为服务器领域的主流操作系统,其强大的系统管理能力和灵活的任务调度机制是每位系统管理员必须掌握的技能。

本文将全面解析Linux系统的引导过程、服务控制、进程管理以及计划任务设置,帮助读者构建完整的Linux系统管理知识体系。

一、Linux系统引导过程与服务控制

1.1 系统引导的五个关键阶段

Linux系统的启动是一个精心设计的链式过程:

  1. 开机自检:开机后,通过BIOS对硬件进行初步检测,确定第一个启动设备进行引导
  2. MBR引导:从硬盘第一个扇区加载MBR(主引导记录),启动GRUB引导程序
  3. GRUB引导菜单:读取/boot/grub2/grub.cfg配置文件,加载并启动操作系统内核
  4. 加载Linux内核:将内核文件和镜像文件加载到内存
  5. init进程初始化:内核加载并启动 init 进程,完成系统的初始化。

整个过程可以想象成:

  • 1.早上醒来活动身体,检查身体是否有不适
  • 2.查看日程表,决定今天要做什么
  • 3.起床洗漱准备,选择当日着装、早餐
  • 4.头脑清醒后集中注意力,整理代办事项,准备眼镜、钥匙、手机等工具
  • 5.正式开始一天工作

1.2 GRUB2的进化优势

相比传统GRUB,GRUB2具有显著改进:

  • 支持ext4、btrfs、xfs等多种现代文件系统
  • 模块化设计减小了核心镜像体积
  • 配置文件位置变更为/boot/grub2/grub.cfg
  • 支持更灵活的启动参数配置

1.3 Systemd的优点

Systemd作为新一代初始化系统,解决了传统SysVinit的痛点:

关键优势包括:

  • 并行启动:显著缩短系统启动时间
  • 按需启动:减少不必要的资源占用

总结:Systemd 改善了系统的启动速度和服务管理效率,解决了 SysVinit 启动慢和脚本复杂的问题。

1.4 Systemd单元类型

单元类型扩展名说明
Service.service描述一个系统服务
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automount.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或交换文件
Path.path描述一个文件系统中文件或目录
Timer.timer用于保存一个定时器(用于实现类似cron的调度任务)
Snapshot.snapshot用于保存一个系统的状态
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述属于CGroup的一组通过层次组织的管理系统进程
Target.target描述一组systemd的单元

1.5 运行级别与systemd目标

#查看运行级别
runlevel命令

Linux系统管理与进程任务管理方式

systemctl工具
#临时切换运行级别
init命令

systemctl工具

Systemd用target替代了传统的运行级别概念:

运行级别Target单元用途
0poweroff.target关机
1rescue.target单用户救援模式
3multi-user.target多用户文本模式
5graphical.target图形界面模式
6reboot.target重启

设置与切换运行级别:

查看当前默认目标
systemctl get-default

切换到图形界面
systemctl isolate graphical.target

设置默认目标字符化界面
systemctl set-default multi-user.target
  • 单用户/救援模式

Linux系统管理与进程任务管理方式

  • 多用户模式(不带图形界面)

Linux系统管理与进程任务管理方式

  • 图形界面模式

Linux系统管理与进程任务管理方式

1.6 系统服务控制

1、设置开机自启
systemctl enable sshd

2、查看开机自启
systemctl is-enabled sshd

3、禁用开机自启
systemctl disable sshd

4、查看服务状态
systemctl status sshd

5、启动/关闭/重启/重新加载防火墙
systemctl start/stop/restart/reload firewalld.service

6、启动服务
systemctl list-unit-files | grep enabled

7、临时修改主机名
hostname 主机名

8、永久修改主机名
hostnamectl set-hostname newname

9、设置系统语言为中文
localectl set-locale LANG=zh_CN.utf8

1.7 优化启动过程

#ntsysv工具

  • 提供一个交互式、可视化窗口
  • 可以在字符终端运行
  • 便于集中管理多个服务

Linux系统管理与进程任务管理方式

#systemctl工具

  • 不提供交互式、可视化窗口
  • 管理单个服务效率更高

二、Linux进程管理

2.1 程序与进程的本质区别

  • 程序:静态存储在磁盘上的可执行代码(如firefox)
  • 进程:程序运行的动态实例,拥有独立PID和系统资源

举例php:程序就像是一本写好的菜谱(静态的文本),放在书架上不会自己动,进程就是厨师按照菜谱一步步烹饪的过程(动态的执行),需要用到锅碗瓢盆等资源。

Linux系统管理与进程任务管理方式

父进程与子进程:

  • 父进程:是创建其他进程的进程,就像一个家长。
  • 子进程:是由父进程创建并执行的独立进程,就像子女一样。

举个例子:你打开游戏软件(父进程),它弹出一个商店窗口(子进程),这个窗口就是父进程“生出来”的帮手。

2.2 查看进程工具介绍

  1. ps - 静态进程信息统计ps(process status)命令用于查看系统中当前运行的进程。它显示了与进程相关的信息,如进程 ID (PID)、用户、CPU 和内存使用率等。
常用选项:
ps aux   # 显示所有进程,包括其他用户的进程
ps aux | grep [进程名]  # 通过管道和 `grep` 命令过滤进程
ps -ef   # 以标准格式显示所有进程

Linux系统管理与进程任务管理方式

输出字段解释:
- USER:进程所属的用户。
- PID:进程 ID。
- %CPU:进程占用的 CPU 百分比。
- %MEM:进程占用的内存百分比。
- VSZ:进程使用的虚拟内存(单位 KB)。
- RSS:进程使用的物理内存(单位 KB)。
- TTY:进程关联的终端设备,如:tty1(物理终端)、pts/0(伪终端)……若进程未关联终端(如后台任务),该字段可能显示?或空白
- STAT:进程的状态,常见状态有:R(运行)、S(睡眠)、Z(僵尸)、T(停止)等。
- START:进程的启动时间。
- TIME:进程占用的 CPU 时间。
- COMMAND:启动该进程的命令。
详解
STAT:该进程的状态(D:不可中断的休眠状态:R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态: Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)。
D:系统守护进程
T:调式、程序执行一般停止
R :该程序目前正在运作,或者是可被运作;
S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。
T :该程序目前正在侦测或者是停止了;
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态D 不可中断状态.
它们含意如下::
<: 表示进程运行在高优先级上
N: 表示进程运行在低优先级上
L: 表示进程有页面锁定在内存中
s: 表示进程是控制进程
l: 表示进程是多线程的
+: 表示当前进程运行在前台
D:系统守护进程
  1. top - 动态查看进程信息top 命令用于动态显示 Linux 系统中运行的进程和资源使用情况,实时更新显示。
常用快捷键:
按P:以CPU使用率排序
按M:以内存使用排序
按T:以时间排序
按1:显示多核CPU详情
按q:退出top

Linux系统管理与进程任务管理方式

输出解释:
- PID:进程 ID。
- USER:启动该进程的用户。
- %CPU:进程占用的 CPU 百分比。
- %MEM:进程占用的内存百分比。
- TIME+:进程累计使用的 CPU 时间。
- COMMAND:执行的命令。
  1. pgrep - 查询进程信息
常用的参数:
-l:选项可同时输出对应的进程名以及PID
-U:选项查询特定用户的进程
-t:选项查询在特定终端运行的进程

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

  1. pstree - 以树形结构列出进程信息
pstree 命令默认情况下只是以树形结构显示各进程的名称,结合以下常用的参数使用:
pstree -p  # 显示对应PID号
pstree -u  # 显示对应用户名
pstree -a  # 显示完整命令行

Linux系统管理与进程任务管理方式

从输出结果中可以看出,systemd 进程确实是 Linux 操作系统中所有进程的“始祖”。

2.3 进程调度与控制

1.Linux进程前后台运行机制对比

特性前台运行后台运行
终端控制独占终端输入输出释放终端控制权
交互方式需等待进程结束可立即输入新命令
信号响应直接接收Ctrl+C中断需通过kill命令终止
典型场景即时性命令(ls,grep等)耗时操作(大文件复制/编译)
启动方式直接输入命令命令末尾添加&符号

例如,当使用 cp 命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&” 符号将复制操作放到后台运行,以便用户可以继续执行其他命令操作。

Linux系统管理与进程任务管理方式

2.调度启动

‌调度启动的目的‌:在服务器维护中,将‌耗时且占用资源多‌的任务(如数据备份、数据库导出)安排在‌系统相对空闲时段‌(如夜间)自动执行。用户需‌预先设定任务的具体运行时间‌,系统会在到达指定时间后‌自动启动并完成任务‌。

‌核心特点‌:

  • ‌后台运行:‌ 调度启动的计划任务进程均在‌后台运行‌,‌不会占用用户的命令终端‌。
  • ‌定时触发:‌ 任务在预设的时间点或周期自动触发执行。
命令‌‌用途
at设置‌一次性‌执行的计划任务
‌crontab‌设置‌周期性‌重复执行的计划任务

3.前后台调度技巧

Ctrl+Z组合键     # 挂起当前进程
jobs -l         # 列出当前所有后台任务及其进程 ID
fg %1           # 将后台任务编号为 1 的任务带回前台
bg %1           # 将后台任务编号为 1 的任务恢复在后台运行

Linux系统管理与进程任务管理方式Linux系统管理与进程任务管理方式Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

4.进程终止方法

Ctrl+C组合键            # 中断正在执行的命令
kill -9 2248           # 强制终止PID号为2248的进程(不可恢复)
killall vim          # 终止所有名为vim进程
pkill -u "python app"  # 终止匹配进程

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

三、计划任务管理

计划任务用于自动执行系统中的任务。Linux 中常用的计划任务工具包括 atcron

3.1 一次性任务:at命令

at 命令用于设置一次性任务,任务将在指定时间执行。

命令格式:
at [HH:MM] [yyyy-mm-dd]
at> [要执行的命令]
常用选项:
atq:列出待执行的任务。
atrm [任务编号]:删除指定的任务。

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

3.2 周期性任务:cron系统

cron 用于设置定期执行的任务。用户可以通过 crontab 命令编辑和管理自己的计划任务。

命令格式:
* * * * * command
分 时 日 月 周 命令
顺序含义具体要求
1分钟取值为 0~59 的任意整数
2小时取值为 0~23 的任意整数
3日期取值为 1~31 的任意整数(日期在该月份中必须有效)
4月份取值为 1~12 的任意整数
5星期取值为 0~7 的任意整数,0 或 7 代表星期日
6命令可以是普通的命令,也可以是自己编写的程序脚本
星号“*”:表示上表要求的任意整数。
减号“-”:可以表示一个连续的时间范围,如“1-4”表示整数 1、2、3、4。
逗号“,”:可以表示一个间隔的不连续范围,如“3, 4, 6, 8”。
斜杠符号“/”:可以用来指定间隔频率,如在日期字段中的“*/3”表示每隔 3 天。
常用命令:
crontab -e :编辑当前用户的 cron 任务。
crontab -l :列出当前用户的 cron 任务。
crontab -r :删除当前用户的所有 cron 任务。
crontab -u :指定XX用户的 cron 服务。

实用案例

每天的 7:50 启动 sshd 服务,22:50 停止 sshd服务。

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

cron服务管理

启动 cron 服务:systemctl start crond
启用 cron 服务开机启动:systemctl enable crond
查看 cron 服务状态:systemctl status crond

Linux系统管理与进程任务管理方式

四、常用系统管理命令

4.1date

date 命令用于显示当前的系统日期和时间,可以指定不同的输出格式,或用它来设置系统的日期和时间。

  • 查看时间和日期

Linux系统管理与进程任务管理方式

  • 自定义时间格式

Linux系统管理与进程任务管理方式

  • 显示当前时间戳(1970年1月1日至今的秒数)

Linux系统管理与进程任务管理方式

  • 设置系统时间

Linux系统管理与进程任务管理方式

  • 与阿里云编程同步时间

Linux系统管理与进程任务管理方式

4.2cal

cal 命令用来显示当前月份或指定月份的日历,可以方便的查看日期。

  • 查看当前月份的日历:

Linux系统管理与进程任务管理方式

  • 查看指定年份和月份的日历:

Linux系统管理与进程任务管理方式

  • 显示一整年的日历:

Linux系统管理与进程任务管理方式

4.3history

history 命令用来查看当前用户的历史命令,这个命令可以帮助你快速找到之前运行的命令。

  • 查看命令历史:

Linux系统管理与进程任务管理方式

  • 查看历史命令的特定条目:

Linux系统管理与进程任务管理方式

  • 使用历史编号执行命令:

Linux系统管理与进程任务管理方式

4.4scp

scp 命令用于通过 SSH 协议在本地和远程服务器之间安全地复制文件或目录。它加密了数据传输,因此更加安全。

  • 将本地文件复制到远程服务器:

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

  • 将本地目录复制到远程服务器:

Linux系统管理与进程任务管理方式

Linux系统管理与进程任务管理方式

总结

掌握Linux系统管理和进python程控制是成为合格系统管理员的基石。从系统引导到服务管理,从进程监控到任务调度,这些技能构成了Linux系统运维的核心能力框架。建议读者:

  1. 在测试环境练习各种systemctl命令
  2. 使用crontab设置实际需要的定时任务
  3. 通过top和ps监控系http://www.chinasem.cn统资源使用情况
  4. 定期审查自动启动的服务项

只有通过持续实践,才能真正掌握这些强大的系统管理工具,构建高效稳定的Linux运行环境。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持China编程(www.chinasem.cn)。

这篇关于Linux系统管理与进程任务管理方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155783

相关文章

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

Linux镜像文件制作方式

《Linux镜像文件制作方式》本文介绍了Linux镜像文件制作的过程,包括确定磁盘空间布局、制作空白镜像文件、分区与格式化、复制引导分区和其他分区... 目录1.确定磁盘空间布局2.制作空白镜像文件3.分区与格式化1) 分区2) 格式化4.复制引导分区5.复制其它分区1) 挂载2) 复制bootfs分区3)

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

java敏感词过滤的实现方式

《java敏感词过滤的实现方式》文章描述了如何搭建敏感词过滤系统来防御用户生成内容中的违规、广告或恶意言论,包括引入依赖、定义敏感词类、非敏感词类、替换词类和工具类等步骤,并指出资源文件应放在src/... 目录1.引入依赖2.定义自定义敏感词类3.定义自定义非敏感类4.定义自定义替换词类5.最后定义工具类

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

SpringBoot的内嵌和外置tomcat的实现方式

《SpringBoot的内嵌和外置tomcat的实现方式》本文主要介绍了在SpringBoot中定制和修改Servlet容器的配置,包括内嵌式和外置式Servlet容器的配置方法,文中通过示例代码介绍... 目录1.内嵌如何定制和修改Servlet容器的相关配置注册Servlet三大组件Servlet注册详

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

SQL 注入攻击(SQL Injection)原理、利用方式与防御策略深度解析

《SQL注入攻击(SQLInjection)原理、利用方式与防御策略深度解析》本文将从SQL注入的基本原理、攻击方式、常见利用手法,到企业级防御方案进行全面讲解,以帮助开发者和安全人员更系统地理解... 目录一、前言二、SQL 注入攻击的基本概念三、SQL 注入常见类型分析1. 基于错误回显的注入(Erro

requests处理token鉴权接口和jsonpath使用方式

《requests处理token鉴权接口和jsonpath使用方式》文章介绍了如何使用requests库进行token鉴权接口的处理,包括登录提取token并保存,还详述了如何使用jsonpath表达... 目录requests处理token鉴权接口和jsonpath使用json数据提取工具总结reques

Java多种文件复制方式以及效率对比分析

《Java多种文件复制方式以及效率对比分析》本文总结了Java复制文件的多种方式,包括传统的字节流、字符流、NIO系列、第三方包中的FileUtils等,并提供了不同方式的效率比较,同时,还介绍了遍历... 目录1 背景2 概述3 遍历3.1listFiles()3.2list()3.3org.codeha