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

相关文章

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

详解Java中三种状态机实现方式来优雅消灭 if-else 嵌套

《详解Java中三种状态机实现方式来优雅消灭if-else嵌套》这篇文章主要为大家详细介绍了Java中三种状态机实现方式从而优雅消灭if-else嵌套,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录1. 前言2. 复现传统if-else实现的业务场景问题3. 用状态机模式改造3.1 定义状态接口3

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Java异常捕获及处理方式详解

《Java异常捕获及处理方式详解》异常处理是Java编程中非常重要的一部分,它允许我们在程序运行时捕获并处理错误或不预期的行为,而不是让程序直接崩溃,本文将介绍Java中如何捕获异常,以及常用的异常处... 目录前言什么是异常?Java异常的基本语法解释:1. 捕获异常并处理示例1:捕获并处理单个异常解释:

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更