Linux下进程相关知识
如果你看一下ps的man手册,你会发现有很多命令选项可以传递,它们会根据你想使用的选项而变化输出结果。
ubuntu@ubuntu:~$ps--helpallUsage:ps[options]Basicoptions:-A,-eallprocesses-aallwithtty,exceptsessionleadersaallwithtty,includingotherusers-dallexceptsessionleaders-N,--deselectnegateselectionronlyrunningprocessesTallprocessesonthisterminalxprocesseswithoutcontrollingttysSelectionbylist:-Ccommandname-G,--Grouprealgroupidorname-g,--groupsessionoreffectivegroupname-p,p,--pidprocessid--ppidparentprocessid-q,q,--quick-pidprocessid(quickmode)-s,--sidsessionid-t,t,--ttyterminal-u,U,--usereffectiveuseridorname-U,--UserrealuseridornameTheselectionoptionstakeastheirargumenteither:acomma-separatedliste.g."-uroot,nobody"orablank-separatedliste.g."-p1234567"Outputformats:-Fextrafull-ffull-format,includingcommandlinesf,--forestasciiartprocesstree-Hshowprocesshierarchy-jjobsformatjBSDjobcontrolformat-llongformatlBSDlongformat-M,Zaddsecuritydata(forSELinux)-OpreloadedwithdefaultcolumnsOas-O,withBSDpersonality-o,o,--formatuser-definedformatssignalformatuuser-orientedformatvvirtualmemoryformatXregisterformat-ydonotshowflags,showrssvs.addr(usedwith-l)--contextdisplaysecuritycontext(forSELinux)--headersrepeatheaderlines,oneperpage--no-headersdonotprintheaderatall--cols,--columns,--widthsetscreenwidth--rows,--linessetscreenheightShowthreads:Hasiftheywereprocesses-LpossiblywithLWPandNLWPcolumns-m,mafterprocesses-TpossiblywithSPIDcolumnMiscellaneousoptions:-cshowschedulingclasswith-loptioncshowtruecommandnameeshowtheenvironmentaftercommandk,--sortspecifysortorderas:[+|-]key[,[+|-]key[,...]]LshowformatspecifiersndisplaynumericuidandwchanS,--cumulativeincludesomedeadchildprocessdata-ydonotshowflags,showrss(onlywith-l)-V,V,--versiondisplayversioninformationandexit-w,wunlimitedoutputwidth--helpdisplayhelpandexitFormoredetailsseeps(1).
常用的操作命令:
psaux
另一个非常有用的命令是top命令,top为你提供有关系统上运行的进程的实时信息,而不是快照。默认情况下,你会每10秒刷新一次。top是一个非常有用的工具,可以查看哪些进程占用了大量资源。此处我们对top命令不做过多的讲解,想了解的小伙伴可以查看我之前的文章,有对top命令做详细的讲解。
【资料图】
2. 进程的细节
在我们深入了解进程的更多实际应用之前,我们必须了解它是什么以及它是如何工作的。
我们上面说过,进程是系统上正在运行的程序,更准确地说,它是系统分配内存、CPU、I/O以使程序运行的过程。一个进程是一个正在运行的程序的实例,打开3个终端窗口,在两个窗口中运行cat命令,不传递任何选项(cat进程将作为一个进程保持打开状态,因为它期望stdin)。现在在第三个窗口运行:ps aux | grep cat
。将看到cat有两个进程,尽管它们调用的是同一个程序。
所有进程都在占用资源,内核的工作是确保进程根据自身需求获得正确数量的资源。当一个进程结束时,它所使用的资源将被释放给其他进程使用。
3. 进程创建
当创建一个新进程时,现有进程基本上会使用称为fork系统调用的函数克隆自己。fork系统调用创建了一个基本相同的子进程,这个子进程有一个新的进程ID(PID),原始进程成为它的父进程,并有一个称为父进程ID PPID的东西。之后,子进程可以继续使用其父进程之前使用的相同程序,或者更经常地使用execve系统调用来启动一个新程序。这个系统调用破坏了内核为该进程设置的内存管理,并为新程序设置了新的内存管理。
l选项为我们提供了正在运行的进程的“长格式”甚至更详细的视图。你会看到一个标记为PPID的列,这是父ID。现在看看你的终端,你将看到正在运行的进程是你的shell,因此在我的系统上有一个运行bash的进程。现在请记住,当你运行ps l
命令时,是从运行bash的进程中运行它的。bash shell的PID是ps l命令的PPID。
当系统启动时,内核创建了一个名为init的进程,它的PID为1。除非系统关闭,否则无法终止init进程。它以根权限运行,并运行许多保持系统运行的进程。
4. 进程终止
上面我们知道创建进程时会发生什么,那么当我们不再需要它时会发生什么呢?
进程可以使用_exit
系统调用退出,这将释放进程用于重新分配的资源。因此,当一个进程准备终止时,它会用一个叫做终止状态的东西让内核知道它为什么要终止。通常情况下,状态为0表示进程终止成功。然而,这还不足以完全终止一个流程。父进程必须通过使用等待系统调用来确认子进程的终止,这是为了检查子进程的终止状态。
5. 信号
信号是对进程的通知,告诉它发生了什么事情。
为什么有信号?
它是软件中断,有很多用途:
信号处理
当一个信号由某个事件生成时,它被传递给一个进程,在传递之前它被认为处于挂起状态。当进程运行时,信号将被传递。但是,进程具有信号掩码,如果指定的话,它们可以将信号传递设置为阻塞。当一个信号被传递时,进程可以做很多事情:
常见的信号
每个信号都由具有符号名的整数定义,符号名的形式为SIGxxx。一些最常见的信号是:
有些信号是不可阻挡的,例如SIGKILL信号。KILL信号杀死进程。
6. kill命令
可以发送终止进程的信号,这样的命令被命名为kill命令。
kill12345
12345是要终止的进程的PID。默认情况下,它发送一个TERM信号。SIGTERM信号被发送到进程,进程释放其资源并保存其状态来请求终止进程。
还可以使用kill命令指定一个信号:
kill-912345
这将运行SIGKILL信号并终止进程。
SIGHUP, SIGINT, SIGTERM, SIGKILL, SIGSTOP信号
这些信号看起来都相似,但它们确实有不同之处。
7. 进程优先级
当你在电脑上同时运行多个程序时,比如Chrome、Microsoft Word或Photoshop,看起来这些进程是同时运行的,但事实并非如此。
进程使用CPU的时间,称为时间片。然后它们暂停几毫秒,另一个进程得到一点时间切片。默认情况下,进程调度以这种循环方式进行。每个进程都有足够的时间片,直到它完成处理。内核处理所有这些进程的切换,并且大多数时候它都做得很好。
进程无法决定何时以及多长时间获得CPU时间,如果所有进程正常运行,它们将大致获得相同数量的CPU时间。但是,有一种方法可以用一个不错的值来影响内核的进程调度算法。优先级它的意思是进程有一个数字来确定它们对CPU的优先级。数值高意味着进程很好,对CPU的优先级较低,数值低或为负数意味着进程不是很好,它想要尽可能多地获得CPU。
要更改进程优先级别,可以使用nice
和renice
命令:
nice-n5aptupgraderenice10-p3245
nice命令用于设置新进程的优先级。renice命令用于设置已存在进程的优先级。
8. 进程状态
我们再来看一下:ps aux
命令
在STAT列中,看到许多值。linux进程可以处于许多不同的状态。你将看到的最常见的如下所示:
9. /proc文件系统
在Linux中一切皆文件,包括进程。进程信息存储在一个称为/proc文件系统的特殊文件系统中。
这里看到多个值,每个PID都有子目录。如果查看ps输出中的PID,则可以在/proc目录中找到它。
进入其中一个进程并查看该文件:
你能看到进程状态信息以及更详细的信息。/proc目录是内核查看系统的方式,因此这里有比ps中更多的信息。
10. Job控制
假设你正在一个终端窗口上工作,并且正在运行一个命令,该命令将花费很长时间。在它完成之前,你不能与shell交互,但是我们希望继续在我们的机器上工作,因此我们需要打开shell。我们可以控制我们的进程如何运行:
将工作发送到后台
在命令后添加&号将在后台运行该命令:
sleep1000&sleep1001&sleep1002&
查看后台进程
将进程从后台移动到前台
要将进程移出后台,只需指定所需的进程ID。如果不带任何选项地运行fg
,它将带回最近的后台进程。
这是一口君的新书,感谢大家支持!
精彩文章合集
文章推荐
标签:
推荐文章
- 绥化全域低风险!黑龙江绥化北林区一地调整为低风险
- 走访抗美援朝纪念馆:长津湖的寒冷,与战斗一样残酷
- 节后第一天北京白天晴或多云利于出行 夜间起秋雨或再上线
- 走近网瘾少年们:他们沉迷网络的病根何在?
- “双减”后首个长假:亲子游、研学游需求集中释放
- 获2021年诺奖的蛋白,结构由中国学者率先解析
- 他从一窍不通的“门外汉”,到重装空投“兵专家”
- 升旗、巡岛、护航标、写日志,他们一生守护一座岛
- 中国故事丨“沉浸式”盘点今年的教育好声音!
- 农业农村部:确保秋粮丰收到手、明年夏季粮油播种
- “双减”出台两个月,组合拳如何直击减负难点?
- 《山海情》里“凌教授”的巨菌草丰收啦
- 且看新疆展新颜
- 天山脚下,触摸丝路发展新脉动
- 160万骑手疑似“被个体户”?平台不能当甩手掌柜
- 网游新政下,未成年人防沉迷的“主战场”在哪?
- “辱华车贴”商家及客服被行拘,处罚要不放过每一环
- 沙害是自然界的恶魔,而他是荒沙碱滩的征服者
- 面对婚姻,“互联网世代”的年轻人在忧虑什么?
- IP类城市缘何吸引力强?玩法创新带动游客年轻化
- 国庆主题花坛持续展摆至重阳节
- 都市小资还是潮流乐享?花草茶市场呈爆发性增长
- 从1.3万元降到700元,起诉书揭秘心脏支架“玄机”
- 北京国庆7天接待游客超861万人次 冬奥线路受青睐
- 陈毅元帅长子忆父亲叮嘱:你们自己学习要好,就可以做很多事儿
- 报告显示:这个国庆假期,粤川浙桂赣旅游热度最高
- 中国科技人才大数据:广东总量第一,“北上”这类人才多
- 嘉陵江出现有记录以来最强秋汛
- 全国模范法官周淑琴:为乡村群众点燃法治明灯
- 线上教学模式被盯上,网络付费刷课形成灰色产业链
- 云南保山:170公里边境线,4000余人日夜值守
- 警方查处故宫周边各类违法人员12人
- 农业农村部:确保秋粮丰收到手、明年夏季粮油播种
- 受南海热带低压影响 海南海口三港预计停运将持续到10日白天
- 多地网友投诉遭遇旅游消费骗局,呼吁有关部门严查乱象
- 神经科学“罗塞塔石碑”来了:迄今为止最完整的大脑细胞图谱
- 汾河新绛段发生决口
- 陕西支援14省份采暖季保供用煤3900万吨
- 这场红色故事“云比拼”,穿越时空为我们指引方向
- 受琼州海峡封航影响 10月7日、8日进出海南岛旅客列车停运
- 辽宁省工信厅发布10月8日电力缺口橙色预警
- 广州10月8日至20日对所有从省外来(返)穗人员实施核酸检测
- 假期怎么过得这么快?国庆5.15亿人次出游,你咋过的?
- 国庆假期全国道路交通总体安全平稳有序
- 哈尔滨市南岗区爱达88小区将调整为低风险地区
- 新疆霍尔果斯市2例无症状感染者新冠病毒均为德尔塔变异株
- 百闻不如一见——北京大学留学生参访新疆
- 看,生机勃勃的中国
- 国庆假期中国预计发送旅客4.03亿人次
- 新疆兵团可克达拉市:195名密接者已全部隔离医学观察
- 山西平遥消防4天29次救援:拖着腿走路也要完成任务
- 国庆假期北京接待游客861.1万人次
- 冷空气自西向东影响中国大部地区 气温将下降4℃至6℃
- 新疆哈密市巴里坤县发生4.3级地震 震源深度9千米
- 国庆假期中国国内旅游出游5.15亿人次
- 公安部交管局:国庆假期日均出动警力18万余人次,5位交警辅警牺牲
- 受南海热带低压影响广东将暂别高温天气
- “数说”杭州无障碍改造:触摸城市“爱的厚度”
- 新疆霍尔果斯无症状感染者新冠病毒属德尔塔变异株 未发现高度同源的基因组序列
- 新疆伊犁州:妥善做好滞留旅客安置返回工作
- 国庆假期广西累计接待游客逾3611万人次 实现旅游消费272.41亿元
- 2021年MAGIC3上海市青少年三对三超级篮球赛落幕
- 新疆兵团第四师可克达拉市1名无症状感染者为餐饮从业人员
- 哥伦比亚遇上广州:洋茶人“云上”喫茶 传播中国茶“味道”
- 厦门同安区四区域调整为低风险 全市无中高风险地区
- 直径2米“面气球”亮相 山西首届“寿阳味道”美食大赛启幕
- 世界第一埋深高速公路隧道大峡谷隧道出口端斜井掘进完成
- 浙南沿海村村发展有妙招 搭乘共富快车打造“海上花园”
- 新疆霍尔果斯两例无症状感染者新冠病毒均属德尔塔变异株
- 南沙港铁路国庆假期不停工 力争今年年底开通
- 添加陌生人为好友 内蒙古两女子被骗126万
- 中国国庆假期出行热:数字改变“关键小事”
- 水能载物亦能“生金” 浙江遂昌山村以水为媒奔共富
- 铁路人国庆雨中巡查排险记:一身雨衣、一把铁锹保安全畅通
- 铁路迎返程高峰 西安局集团公司加开79趟高铁列车
- 受热带低压影响 琼州海峡北岸等待过海车辆排长龙
- 哈尔滨市学校有序恢复线下教学
- 哈尔滨一地风险等级调整为低风险
- 从进“培训班”到看《长津湖》
- 安徽黄山国庆假期迎客12万余人 旅游市场稳步复苏
- 山西解除持续近90小时的暴雨四级应急响应
- 科学拦峰错峰削峰 嘉陵江洪水过境重庆中心城区“有惊无险”
- 粤高速大湾区路段假期车流集中 跨珠江口通道尤甚
- 千年街区“非遗”风催热国庆假期本地游
- “颜值担当”里的中国,映照“万物和谐”新气象
- 杭州“十一”假期后初中取消统一早读
- 济南趵突泉地下水位创1966年以来最高纪录
- 厦门中高风险地区清零 撤除离厦通道查验点
- 陕西境内21条河流出现洪峰 渭河3号洪水复涨
- 国庆假期北京市公园风景区共纳客687万人次
- 平遥古城城墙局部坍塌,修缮程序已对接启动
- 300年古村落迭代破圈 化身旅游打卡新地标
- 南海热带低压致琼州海峡封航 海口机场航班受影响
- 新疆阿尔泰山镶“碧玉” 喀纳斯湖迎金秋
X 关闭
资讯
X 关闭