当前所在位置: 首页 > 数码科技 > 正文

linux之进程

2023-10-13 本站作者 【 字体:

在linux每执行一个二进制文件都会产生一个进程并生成一个进程PID。进程除了自身的ID外,还有父进程ID(ppid),所有进程的祖先进程是同一个进程,它叫做init进程,PID为1。

当用户从一个终端登陆时,便获得一个此次执行的bash进程的PID。用户执行的每一条指令都是这个PID的子进程。

linux通过fork-and-exec的流程来产生子进程:首先会通过父进程以复制 (fork) 的方式产生一个一模一样的子进程, 然后被复制出来的子进程再以 exec 的方式来运行实际要进行的程序,最终就成为一个子进程的存在。

僵尸进程:当该程序应该已经运行完毕,或者是因故应该要终止了,但是该程序的父程序却无法完整的将该程序结束掉,而造成那个程序一直存在内存当中,形成僵尸进程。

进程后台运行与暂停

通过在命令结尾加上&,可以时命令在后台运行而不影响前台。

通过[ctrl]-z可以将前台正在运行的进程暂停。

jobs

查看当前后台工作状态:

选项与参数:

-l :除了列出 job number 与命令串之外,同时列出 PID 的号码;

-r :仅列出正在背景 run 的工作;

-s :仅列出正在背景当中暂停 (stop) 的工作。[zsp@sky]~$ vim a

[1]+ 已停止 vim a

[zsp@sky]~$ vim b

[2]+ 已停止 vim b

[zsp@sky]~$ jobs

[1]- 已停止 vim a

[2]+ 已停止 vim b

那个+代表最近一个被暂停到后台的工作,且当执行fg命令时在后台下默认会被取用的那个工作。-代表最近最后第二个被暂停到后台中的工作号码

fg

将后台的工作拿出来处理

%可以指定处理哪一个后台任务

[zsp@sky]~$ fg

vim b

[2]+ 已停止 vim b

[zsp@sky]~$ jobs

[1]- 已停止 vim a

[2]+ 已停止 vim b

[zsp@sky]~$ fg %1

vim a

[1]+ 已停止 vim a

[zsp@sky]~$ jobs

[1]+ 已停止 vim a

[2]- 已停止 vim b

bg

让一个被暂停的任务在后台继续运行

kill

停止或重启后台任务

-l :这个是 L 的小写,列出目前 kill 能够使用的讯号 (signal) 有哪些?

-1 :重新读取一次参数的配置文件,启动被终止的进程;

-2 :代表与由键盘输入 [ctrl]-c 同样的动作;

-9 :立刻强制删除一个工作;

-15:以正常的程序方式终止一项工作。与 -9 是不一样的。

nohup

脱机执行后台进程

当后台任务正在执行时,若注销登录,那么任务也将停止。可以使用nohup来使任务在注销后继续执行。

nohup [命令与参数] &

ps

将某个时间点的进程运行情况列下来

选项与参数:

-A :所有的 process 均显示出来,与 -e 具有同样的效用;

-a :不与 terminal 有关的所有 process ;

-u :有效使用者 (effective user) 相关的 process ;

x :通常与 a 这个参数一起使用,可列出较完整资讯。

输出格式规划:

l :较长、较详细的将该 PID 的的资讯列出;

j :工作的格式 (jobs format)

-f :做一个更为完整的输出。

常用:

ps aux 列出系统所有的程序数据

ps -l 仅列出自己 bash 程序[zsp@sky]~$ ps -l

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

0 S 1000 1955 1948 0 80 0 - 6086 wait pts/0 00:00:00 bash

0 R 1000 2917 1955 0 80 0 - 2530 - pts/0 00:00:00 ps

从左到右各个字段意思

F:代表这个程序标志,说明这个程序的权限,常见号码有:

若为 4 表示此程序的权限为 root ;

若为 1 则表示此子程序仅进行复制(fork)而没有实际运行(exec)。

S:代表这个程序的状态 (STAT),主要的状态有:

R (Running):该程序正在运行中;

S (Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。

D :不可被唤醒的睡眠状态,通常这支程序可能在等待 I/O 的情况(ex>列印)

T :停止状态(stop),可能是在工作控制(背景暂停)或除错 (traced) 状态;

Z (Zombie):僵尸状态,程序已经终止但却无法被移除至内存外。

UID/PID/PPID:代表此程序被该 UID 所拥有/程序的 PID 号码/此程序的父程序 PID 号码』

C:代表 CPU 使用率,单位为百分比;

PRI/NI:Priority/Nice 的缩写,代表此程序被 CPU 所运行的优先顺序,数值越小代表该程序越快被 CPU 运行。

ADDR/SZ/WCHAN:都与内存有关,ADDR 是 kernel function,指出该程序在内存的哪个部分,如果是个 running 的程序,一般就会显示-/ SZ 代表此程序用掉多少内存 / WCHAN 表示目前程序是否运行中,同样的, 若为 - 表示正在运行中。

TTY:登陆者的终端机位置,若为远程登陆则使用动态终端介面 (pts/n);

TIME:使用掉的 CPU 时间,注意,是此程序实际花费 CPU 运行的时间,而不是系统时间;

CMD:就是 command 的缩写,造成此程序的触发程序之命令为何。[zsp@sky]~$ ps aux | head -n 2

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.1 24440 2416 ? Ss 16:19 0:01 /sbin/init

root 2 0.0 0.0 0 0 ? S 16:19 0:00 [kthreadd]

从左到右各个字段意思

USER:该 process 属於那个使用者帐号的?

PID :该 process 的程序识别码。

%CPU:该 process 使用掉的 CPU 资源百分比;

%MEM:该 process 所占用的实体内存百分比;

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运行,若与终端机无关则显示 ?,另外, tty1-tty6 是本机上面的登陆者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

STAT:该程序目前的状态,状态显示与 ps -l 的 S 标志相同 (R/S/T/Z)

START:该 process 被触发启动的时间;

TIME :该 process 实际使用 CPU 运行的时间。

COMMAND:该程序的实际命令是什么

top

动态观列出进程的变化

相对与 ps 是列出一个时间点的程序状态, top 则可以持续侦测程序运行的状态

选项与参数:

-d :后面可以接秒数,就是整个进程画面更新的秒数。默认是 5 秒;

-b :以批量的方式运行top,通常会搭配数据流重导向来将批量的结果输出成为文件。

-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。

-p :指定某些个 PID 来进行观察监测而已。

在 top 运行过程当中可以使用的按键命令:

? :显示在 top 当中可以输入的按键命令;

P :以 CPU 的使用资源排序显示;

M :以 Memory 的使用资源排序显示;

N :以 PID 来排序

T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。

k :给予某个 PID 一个讯号 (signal)

r :给予某个 PID 重新制订一个 nice 值。

q :离开 top 软件的按键。

[zsp@sky]~$ top -d 3 -p 2308 -n 3 > top.txt

[zsp@sky]~$ cat top.txt

top - 17:47:09 up 1:27, 1 user, load average: 0.36, 0.51, 0.56

Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.8%us, 0.5%sy, 0.0%ni, 97.8%id, 0.8%wa, 0.0%hi, 0.0%si, 0.0%st

Mem: 1965880k total, 1403864k used, 562016k free, 146084k buffers

Swap: 2009084k total, 0k used, 2009084k free, 503384k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

2308 zsp 20 0 422m 41m 23m S 2 2.1 1:24.12 plugin-containe

每一行解释:

第一行(top...):

目前的时间,即是17:47:09 那个字段;启动到目前为止所经过的时间,即是 up 1:27那个字段;已经登陆系统的使用者人数,即是 1 user那个字段;系统在 1, 5, 15 分钟的平均工作负载。

第二行(Tasks...):

显示的是目前程序的总量与个别程序在什么状态(running, sleeping, stopped, zombie)。

第三行(Cpus...):显示的是 CPU 的整体负载,每个项目可使用 ?

第四行与第五行:表示目前的实体内存与虚拟内存 (Mem/Swap) 的使用情况。

第六行:这个是当在 top 程序当中输入命令时,显示状态的地方。

最后一行:每个 process 使用的资源情况。

PID :每个 process 的 ID

USER:该 process 所属的使用者;

PR :Priority 的简写,程序的优先运行顺序,越小越早被运行;

NI :Nice 的简写,与 Priority 有关,也是越小越早被运行;

%CPU:CPU 的使用率;

%MEM:内存的使用率;

TIME+:CPU 使用时间的累加;

pstree

将进程之间的关系以树的形式显示出来

-A :各程序树之间的连接以 ASCII 字节来连接;

-U :各程序树之间的连接以万国码的字节来连接。在某些终端介面下可能会有错误;

-p :并同时列出每个 process 的 PID;

-u :并同时列出每个 process 的所属帐号名称。

killall

根据进程名字管理进程

killall -signal 命令名称

-i :interactive 的意思,互动式的,若需要删除时,会出现提示字节给使用者;

-e :exact 的意思,表示『后面接的 command name 要一致』,但整个完整的命令

不能超过 15 个字节。

-I :命令名称(可能含参数)忽略大小写。

阅读全文
相关推荐

太原市旅游攻略 太原最值得去的地方

太原市旅游攻略 太原最值得去的地方
太原经典1日游:太原第一站先游览山西省博物馆感受5000年的中华文明史,了解感受夏商踪迹、晋国霸业、佛风遗韵、明清晋商文化;然后可以去太原最大的的迎泽公园感受当地人民的生活气息,再去太原食品街寻找美食。

密云古北水镇旅游攻略 密云古北水镇一日游攻略

密云古北水镇旅游攻略 密云古北水镇一日游攻略
古北水镇位于密云东北侧,是一处在古村基础上改造重建的古镇景区。古镇依水而建,即有北方古镇的大气威严,也不失江南水乡的特色,可以泡温泉、品尝美食、爬司马台长城等,是京郊地区休闲度假不错的选择。古镇内不通车,非常适合步行游玩。

银川沙湖旅游攻略 银川沙湖几月份去最好

银川沙湖旅游攻略 银川沙湖几月份去最好
宁夏沙湖旅游景区地处贺兰山下、黄河金岸,20余平方公里沙漠与40余平方公里水域毗邻而居,拥有万亩水域、两千亩芦苇、千亩荷池、五千亩沙丘,这里栖居着白鹤、黑鹤、天鹅等十数种珍鸟奇禽,被誉为“世间少有”的文化旅游胜地。

黔东南旅游攻略 贵州黔东南旅游攻略自由行

黔东南旅游攻略 贵州黔东南旅游攻略自由行
黔东南苗族侗族自治州位于贵州省东南部,地处云贵高原东南边缘,东邻湖南,南接广西,境内居住着苗、侗、汉、布依、水等20多个民族,民族风情非常浓郁。这里有世界上最大的苗寨和最大的侗寨,有独特的吊脚楼、风雨桥、鼓楼。秋季是到黔东南旅行的最好时间,雨水不会像夏季般频繁,气温不会像冬季时寒冷,温度适宜。

青海湖旅游住宿攻略 青海湖环湖住宿攻略

青海湖旅游住宿攻略 青海湖环湖住宿攻略
由于青海湖距离西宁较远,所以建议在青海湖周边过夜,以便欣赏日出日落等美景。目前青海湖周边住宿的选择地方主要有以下几个:一、二郎剑景区附近:这里是青海湖唯一的官方景区,也是观看日出最佳的地点之一。这里有多家酒店和民宿可供选择,价格根据季节和设施不同而不同,旺季每晚约200-500元,淡季每晚约100-300元。

丽江大理洱海旅游攻略 丽江大理攻略最佳旅游攻略

丽江大理洱海旅游攻略 丽江大理攻略最佳旅游攻略
丽江古城一日游攻略:今日主要游览丽江古城,漫步在古城小巷,尽情享受古城慵懒的氛围,还可以在街头巷尾寻觅各式丽江特色小吃来填补肚子。之后前往狮子山,登上狮子山的制高点—万古楼,俯瞰整个丽江古城,运气足够好的话向北可以远眺到玉龙雪山。下了狮子山顺路去木府,近距离欣赏古城内这座仿紫禁城的纳西宫廷式建筑。傍晚回到古城,在四方街感受古城的夜生活,还可以去酒吧消遣一番,说不定会碰上美好的艳遇。古城西侧的狮子山公园是观赏古城全景的最佳去处,除了山顶的万古楼,公园有很多点都可以看到古城和雪山。

长春旅游攻略景点必去 长春市区旅游攻略必去景点

长春旅游攻略景点必去 长春市区旅游攻略必去景点
1、吉林省博物院:吉林省博物院,原名吉林省博物馆。吉林省博物院是一座历史与艺术博物馆,现有文物藏品12万余件,其中一级文物295件、二级文物3379件、三级文物14280件、其它文物近10万件,始自远古,及至现代,精华荟萃,内涵丰富。2、伪满皇宫博物院:伪满洲皇宫博物院建立在伪满皇宫旧址上,是末代皇帝爱新觉罗•溥仪充当伪满洲国傀儡皇帝时居住的宫殿,可见到御用汽车等文物。皇宫可分为进行政治活动的外廷和日常生活的内廷两部分,现分别辟为伪满皇宫陈列馆和伪满帝宫陈列馆,有缉熙楼、中和门、怀远楼、同德殿等建筑景观。

康定新都桥旅游攻略 新都桥必去的几个景点

康定新都桥旅游攻略 新都桥必去的几个景点
新都桥又称东俄罗,位于318国道川藏南北线的分叉路口,号称“摄影家的天堂”。在这可以拍摄到无垠的草甸,曲折的溪流,金黄的秋叶,山坡上大片在觅食的牛羊,散落着的藏族村寨,在金秋来临之际不失为赏秋的好去处,随便一按快门都能得出一张美丽的风景照。此外,国家地理推荐最佳欣赏蜀山之王——贡嘎山的观景点正是在新都桥,天气好可拍摄日照金山之景。

普陀山自驾旅游攻略 普陀山旅游自驾游攻略

普陀山自驾旅游攻略 普陀山旅游自驾游攻略
普陀山在浙江省舟山市普陀区,是舟山群岛1390个岛屿中的一个小岛,形似苍龙卧海,面积近13平方公里,与舟山群岛的沈家门隔海相望,素有“海天佛国”、“南海圣境”之称,是首批国家重点风景名胜区。

南昌旅游攻略景点必去 南昌必看的旅游点

南昌旅游攻略景点必去 南昌必看的旅游点
1、滕王阁:滕王阁临赣江而立,因王勃的《滕王阁序》而闻名,是“江南三大名楼”之一,也是南昌的地标。景区主要由滕王阁主阁,和南北两面的小园子组成,登楼望远是游人来此的主要目的。主阁从外面看是三层带回廊的建筑,其实它里面还有三个暗层和一个设备层,加上两层底座,一共有九层。2、八一广场:位于江西省南昌市的心脏,是江西政治、经济、文化、休闲、娱乐等活动的重要场所。由中心广场、主席台、东西二块游园组成,是江西省最大的城市中心广场。广场中心伫立着由元帅题写的“八一南昌起义纪念塔”,很多游客会在此合影。
本文Tag