Linux进程
一、Linux下的进程
每个用户均可同时运行多个程序。为了区分每一个运行的程序,Linux给每个进程都做了标识,称为进程号(process ID),每个进程的进程号是唯一的。
Linux 给每个进程都打上了运行者的标志,用户可以控制自己的进程:给自己的进程分配不同的优先级,也可以随时终止自己的进程。
进程从执行它的用户处继承UID、GID,从而决定对文件系统的存取和访问。
Linux 不可能在一个 CPU 上同时处理多个任务(作业)请求,而是采用 “分时” 技术来处理这些任务请求。
使用PID区分不同的进程
系统启动后的第一个进程是init,它的PID是1。init是唯一一个由系统内核直接运行的进程。
除了init之外,每个进程都有父进程(PPID标识)
每个进程还有四个与用户和组相关的识别号
实际用户识别号 (real user ID,RUID)
实际组识别号 (real group ID,RGID)
有效用户识别号 (effect user ID,EUID)
有效组识别号 (effect group ID,EGID)
RUID和RGID的作用:识别正在运行此进程的用户和组。
EUID和EGID的作用:确定一个进程对其访问的文件的权限。
1.1管理进程常用命令
使用ps命令查看进程状态信息:
ps -ef
ps aux
作业控制是指控制当前正在运行的进程的行为,也被称为进程控制。
暂时停止某个运行程序 使用Ctrl+z
列举作业号码和名称:jobs
在后台恢复运行:bg [%作业号码]
在前台恢复运行:fg [%作业号码]
发送信号:kill -[信号] pid
进程类型:
交互进程
由一个Shell启动的进程。
交互进程既可以在前台运行,也可以在后台运行。
批处理进程
不与特定的终端相关联,提交到等待队列种顺序执行的进程。
守护进程(Daemon)
在Linux在启动时初始化,需要时运行于后台的进程。
进程的启动方式:
手工方式:使用操作系统提供的用户接口
前台
后台 (&)
调度方式:按照预先指定的时间执行
at
batch
cron
前台进程:
指一个程序控制着标准输入/输出,在程序运行时,shell 被暂时挂起,直到该程序运行结束后,才退回到 shell。在这个过程中,用户不能再执行其它程序
后台进程:
用户不必等待程序运行结束就可以执行其它程序。运行后台进程的方法是在命令行最后加上 “&”
进程和作业的区别:
进程:操作系统的概念,由操作系统负责管理
作业:shell程序的概念,由shell程序负责管理
一个操作系统可以启动多个shell程序,shell本身也是一个进程
一个作业里至少包含一个进程,也可以包含多个进程
作业分前台和后台运行之分
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!