Skip to content

Linux任务、进程与权限

当你开始真正运行脚本、网站、爬虫或后台服务时,很快就会遇到这些问题:

  • 程序有没有在跑
  • 跑了几个
  • 为什么没有响应
  • 为什么脚本不能执行
  • 为什么明明有文件却打不开

这些问题背后,通常都和进程、任务、权限、用户有关。

本节目标

  • 理解什么是进程
  • 理解前台任务和后台任务
  • 学会查看和结束基础进程
  • 理解文件权限和执行权限
  • 理解用户与用户组的基础概念

什么是进程

程序是磁盘上的代码文件,进程是程序运行起来后的状态。

例如:

  • 你写了一个 Python 脚本,这是程序
  • 你运行它之后,这个运行中的实例就是进程

所以你可以把进程理解成:

  • “活着的程序”

为什么进程重要

后面你会不断遇到这些问题:

  • 网站是不是已经启动
  • 爬虫是不是还在跑
  • 某个服务是不是卡死了
  • 这个脚本到底跑了几份

这些问题本质上都和进程有关。

查看进程

ps

bash
ps

可以查看当前终端关联的一些进程。

更常见的写法

bash
ps aux

它会列出系统中的更多进程信息。

结合 grep 查 Python 进程

bash
ps aux | grep python

这在查看 Python 服务、脚本、爬虫是否在运行时非常常见。

top

bash
top

它会动态显示系统运行状态,例如:

  • CPU 占用
  • 内存占用
  • 当前进程列表

你可以把它理解成:

  • Linux 终端里的任务管理器

结束进程

kill

bash
kill 1234

这里的 1234 是进程号。

这表示向这个进程发送结束信号。

为什么要会结束进程

因为真实环境里你经常会碰到:

  • 服务卡住了
  • 端口被旧进程占着
  • 脚本死循环

这时候就需要结束它。

前台任务和后台任务

前台任务

当前终端直接被占住在运行。

例如你直接运行:

bash
python app.py

如果程序一直不结束,它就会占着当前终端。

后台任务

程序放到后面继续运行,不一直占着当前终端。

这在服务、长期任务、爬虫里很常见。

为什么任务管理重要

因为很多程序不是“跑一下就结束”,而是:

  • 长时间运行
  • 需要挂在服务器上
  • 需要后台持续工作

所以你必须逐步建立“程序运行状态管理”的意识。

权限是什么

权限控制的是:

  • 谁能读
  • 谁能写
  • 谁能执行

最常见的权限标记是:

  • r:读
  • w:写
  • x:执行

查看权限

bash
ls -l

输出示例:

text
-rw-r--r-- 1 user user 120 Apr 24 app.py

或者:

text
-rwxr-xr-x 1 user user 240 Apr 24 run.sh

这里你最先要看懂的是:

  • 这是文件还是目录
  • 权限是什么

权限最直观怎么理解

例如:

text
-rw-r--r--

你可以先粗略理解为:

  • 文件拥有者可读可写
  • 同组用户可读
  • 其他用户可读

如果是:

text
-rwxr-xr-x

表示这个文件还具备执行权限。

修改权限

最常见命令之一:

bash
chmod 755 script.sh

你现在不需要把每种数字含义一次性全背完,但至少要知道:

  • chmod 用来改权限
  • 很多脚本不能执行,本质上就是执行权限没加

执行权限为什么重要

很多初学者会遇到这种情况:

  • 脚本写好了
  • 但运行时报权限错误

这通常不是脚本内容错了,而是:

  • 文件没有执行权限

用户和用户组

Linux 是多用户系统。

不同用户、不同用户组,会直接影响:

  • 能不能读某个文件
  • 能不能改某个目录
  • 能不能执行某个脚本

例如:

  • 普通用户能做的事情有限
  • 某些系统目录只有特定权限才能改

为什么“明明有文件却打不开”

很多初学者一开始会以为:

  • 文件存在 = 我一定能操作它

其实不是。

如果权限不足,就会出现:

  • 文件在那儿
  • 但你没法读
  • 或者没法写

一个最常见的实际场景

假设你在服务器上部署一个 Python 项目:

  • 你启动了服务
  • 服务没有正常访问
  • 你去看日志
  • 结果发现日志文件也打不开

这时候你就必须同时考虑:

  • 服务是不是在跑
  • 进程是不是有问题
  • 当前用户有没有权限看日志

这就是为什么进程和权限往往一起出现。

常见错误

1. 把程序和进程混为一谈

程序是文件,进程是运行状态。

2. 脚本不能执行就只怀疑代码

有时候问题根本不是代码,而是执行权限没加。

3. 明明有文件却看不到内容

很可能是权限不足,而不是文件损坏。

4. 进程结束不了就慌

先确认:

  • 进程号是否找对
  • 是否真的是那个进程

练习题

练习 1

用自己的话解释:程序和进程有什么区别。

练习 2

执行 ps aux | grep python,理解它是在做什么。

练习 3

ls -l 观察文件权限格式。

练习 4

思考一个问题:为什么脚本“写对了”却仍然可能不能执行?

练习 5

自己总结:如果“程序没响应”,你会先从进程角度排查什么。

本节小结

这一节的核心,是让你建立系统运行状态和权限控制的基本认知。

你最重要的收获应该是:

  • 理解进程是什么
  • 会用基础命令查看进程
  • 知道进程可以被结束
  • 理解权限控制的是读、写、执行
  • 知道用户身份会影响操作能力

只要这层意识建立起来,后面部署 Django、运行爬虫、排查 Linux 环境问题时,就不会完全没方向。

Built with VitePress.