Linux任务、进程与权限
当你开始真正运行脚本、网站、爬虫或后台服务时,很快就会遇到这些问题:
- 程序有没有在跑
- 跑了几个
- 为什么没有响应
- 为什么脚本不能执行
- 为什么明明有文件却打不开
这些问题背后,通常都和进程、任务、权限、用户有关。
本节目标
- 理解什么是进程
- 理解前台任务和后台任务
- 学会查看和结束基础进程
- 理解文件权限和执行权限
- 理解用户与用户组的基础概念
什么是进程
程序是磁盘上的代码文件,进程是程序运行起来后的状态。
例如:
- 你写了一个 Python 脚本,这是程序
- 你运行它之后,这个运行中的实例就是进程
所以你可以把进程理解成:
- “活着的程序”
为什么进程重要
后面你会不断遇到这些问题:
- 网站是不是已经启动
- 爬虫是不是还在跑
- 某个服务是不是卡死了
- 这个脚本到底跑了几份
这些问题本质上都和进程有关。
查看进程
ps
ps可以查看当前终端关联的一些进程。
更常见的写法
ps aux它会列出系统中的更多进程信息。
结合 grep 查 Python 进程
ps aux | grep python这在查看 Python 服务、脚本、爬虫是否在运行时非常常见。
top
top它会动态显示系统运行状态,例如:
- CPU 占用
- 内存占用
- 当前进程列表
你可以把它理解成:
- Linux 终端里的任务管理器
结束进程
kill
kill 1234这里的 1234 是进程号。
这表示向这个进程发送结束信号。
为什么要会结束进程
因为真实环境里你经常会碰到:
- 服务卡住了
- 端口被旧进程占着
- 脚本死循环
这时候就需要结束它。
前台任务和后台任务
前台任务
当前终端直接被占住在运行。
例如你直接运行:
python app.py如果程序一直不结束,它就会占着当前终端。
后台任务
程序放到后面继续运行,不一直占着当前终端。
这在服务、长期任务、爬虫里很常见。
为什么任务管理重要
因为很多程序不是“跑一下就结束”,而是:
- 长时间运行
- 需要挂在服务器上
- 需要后台持续工作
所以你必须逐步建立“程序运行状态管理”的意识。
权限是什么
权限控制的是:
- 谁能读
- 谁能写
- 谁能执行
最常见的权限标记是:
r:读w:写x:执行
查看权限
ls -l输出示例:
-rw-r--r-- 1 user user 120 Apr 24 app.py或者:
-rwxr-xr-x 1 user user 240 Apr 24 run.sh这里你最先要看懂的是:
- 这是文件还是目录
- 权限是什么
权限最直观怎么理解
例如:
-rw-r--r--你可以先粗略理解为:
- 文件拥有者可读可写
- 同组用户可读
- 其他用户可读
如果是:
-rwxr-xr-x表示这个文件还具备执行权限。
修改权限
最常见命令之一:
chmod 755 script.sh你现在不需要把每种数字含义一次性全背完,但至少要知道:
chmod用来改权限- 很多脚本不能执行,本质上就是执行权限没加
执行权限为什么重要
很多初学者会遇到这种情况:
- 脚本写好了
- 但运行时报权限错误
这通常不是脚本内容错了,而是:
- 文件没有执行权限
用户和用户组
Linux 是多用户系统。
不同用户、不同用户组,会直接影响:
- 能不能读某个文件
- 能不能改某个目录
- 能不能执行某个脚本
例如:
- 普通用户能做的事情有限
- 某些系统目录只有特定权限才能改
为什么“明明有文件却打不开”
很多初学者一开始会以为:
- 文件存在 = 我一定能操作它
其实不是。
如果权限不足,就会出现:
- 文件在那儿
- 但你没法读
- 或者没法写
一个最常见的实际场景
假设你在服务器上部署一个 Python 项目:
- 你启动了服务
- 服务没有正常访问
- 你去看日志
- 结果发现日志文件也打不开
这时候你就必须同时考虑:
- 服务是不是在跑
- 进程是不是有问题
- 当前用户有没有权限看日志
这就是为什么进程和权限往往一起出现。
常见错误
1. 把程序和进程混为一谈
程序是文件,进程是运行状态。
2. 脚本不能执行就只怀疑代码
有时候问题根本不是代码,而是执行权限没加。
3. 明明有文件却看不到内容
很可能是权限不足,而不是文件损坏。
4. 进程结束不了就慌
先确认:
- 进程号是否找对
- 是否真的是那个进程
练习题
练习 1
用自己的话解释:程序和进程有什么区别。
练习 2
执行 ps aux | grep python,理解它是在做什么。
练习 3
用 ls -l 观察文件权限格式。
练习 4
思考一个问题:为什么脚本“写对了”却仍然可能不能执行?
练习 5
自己总结:如果“程序没响应”,你会先从进程角度排查什么。
本节小结
这一节的核心,是让你建立系统运行状态和权限控制的基本认知。
你最重要的收获应该是:
- 理解进程是什么
- 会用基础命令查看进程
- 知道进程可以被结束
- 理解权限控制的是读、写、执行
- 知道用户身份会影响操作能力
只要这层意识建立起来,后面部署 Django、运行爬虫、排查 Linux 环境问题时,就不会完全没方向。