欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


阿里云邮箱邮件收发的密送是什么
win7打开摄像头提示“无法列示所过滤器图像”怎么办
在U盘上安装Linux系统解决方案
Windows 8相机模糊的调节方法
刀片服务器没落吸引力原因
Windows 2003 asp网页不能访问的常见问题
linux free命令详解和使用实例
linux命令大全之sst命令详解
咪咕音乐播放器如何安装
linux vmstat命令详解和使用实例
linux之进程
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   在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 :命令名称(可能含参数)忽略大小写。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站