linux之进程办法
来源:互联网
时间:2026-02-26 11:56:00
作者:
系统大全为您提供
在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 :命令名称(可能含参数)忽略大小写。
以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。
本文来自系统大全https://www.herecours.com/d/file/efpub/2026/26-26/20260226114431567136
编辑推荐:
- linux之进程办法02-26
- 如何在Word 2007的页面中设置对话框选项卡?02-26
- 如何在Word 2013大纲中创建子主题?02-26
- 如何在Word 2016中更改文本大小?02-26
- 如何在Word 2013中应用页面背景?02-26
- 如何在Word 2013中缩进段落?02-26
- 如何在Word 2016中使用标尺缩进段落?02-26
- 如何跟踪和查看Word 2013中的更改?02-26
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 如何在Word 2007的页面中设置对话框选项卡?
如何在Word 2007的页面中设置对话框选项卡?
26-02-26 - 如何在Word 2016中更改文本大小?
如何在Word 2016中更改文本大小?
26-02-26 - 如何在Word 2013中应用页面背景?
如何在Word 2013中应用页面背景?
26-02-26 - 如何在Word 2013中缩进段落?
如何在Word 2013中缩进段落?
26-02-26 - 如何在Word 2016中使用标尺缩进段落?
如何在Word 2016中使用标尺缩进段落?
26-02-26 - 如何跟踪和查看Word 2013中的更改?
如何跟踪和查看Word 2013中的更改?
26-02-26 - 如何在Word 2010中处理文本块?
如何在Word 2010中处理文本块?
26-02-26 - 如何在Word 2007中使用撤消和恢复?
如何在Word 2007中使用撤消和恢复?
26-02-26 - Word 2013的文件菜单的基础知识!
Word 2013的文件菜单的基础知识!
26-02-26 - 如何在Word 2007中取消设置制表位?
如何在Word 2007中取消设置制表位?
26-02-26
