操作系统给予这个内存中的单元一个标识符(PID)依据登入者的UID/GID(/etc/passwd)
衍生出的其它程序(子程序),一般情况也,也会沿用这个程序(父程序)的相关权限
ParentID(PPID)
[root@localhost ~]# bash         <==在当前用户环境下再触发一次bash,原bash会sleep
[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
S - wait pts/ :: bash
S - wait pts/ :: bash
R - - pts/ :: ps
系统先以fork的形式复制一个与父程序相同的暂存程序,它们的PID不同。
暂存程序开始以exec的方式加载实际要执行的程序,成为一个子程序。
 
命令后加&:于后台运行,不会被【Ctrl】+【c】中断
[root@localhost ~]# tar -zpcf /tmp/etc.tar.gz  /etc &
[] <==此时bash会给这个job一个工作号码job number,该指令触发的PID为8400
……
[]+ Done tar -zpcf /tmp/etc.tar.gz /etc
在背景中执行的程序,如果有stdout/stdeer,数据依然出现在屏幕上
背景中执行的程序不能等待terminal/shell的input,但可以用fg/bg呼叫
fg %jobnumber       <==将背景工作拿到前台(foreground)处理
bg %jobnumber <==激活后台暂停的进程 
jobs观察目前的背景工作状态
-l 除了列出job number和指令串,同时列出PID号码
-r 仅列出正在背景running的工作
-s 仅列出正在背景stopping的工作
 
kill    给某个程序一个讯号
kill -l列出kill命令当前能够使用的讯号(signal)有哪些
kill -signal PID/%jobnumber
-1    启动被终止的程序,让该PID重新读取自己的配置文件
-2    同【ctrl】+【c】
-9    立刻强制删除
-15/-SIGTERM    以正常程序的方式终止
killall -signal command 利用下达指令的名称给予讯号,而不根据PID/jobnumber
-i 交互式的,删除时出现提示字符给用户
例如killall -i -9 bash
可以通过pidof [-sx] program_name查询某个程序的PID
-s 仅列出一个PID
-x 同时列出program_name可能的PPID那个程序的PID
 
远程连接Linux主机,将工作以&的方式放置到背景中,工作管理的背景与终端机有关而非系统背景,终端机登出则工作中断,可以用at将工作放到系统背景,或:
nohup command
nohup command &
nohup不支持bash内建指令,与终端机无关,输出会被导向~/nohup.out
 
ps
-A:所有的process均显示出来,类似-e
-a:不与terminal有关的所有process
-u:有效使用者有关的process
-x:通常与a这个参数一起使用,列出更详细的信息
[root@localhost ~]# ps -l        <==仅列出与自己的操作环境(bash)有关的程序
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
S - wait pts/ :: bash
S - wait pts/ :: bash
R - - pts/ :: ps
最上层的父程序会是自己的bash而没有延伸到init这支程序去
F(process flags)说明程序总结权限,4表示此程序权限为root
                                                                   1表示此子程序仅fork没有实际执行(exec)
S(STAT)             代表程序的状态,R(Running)正在运行中
                                                     S(Sleep)正在睡眠状态但可以被唤醒
                                                     D  不可被唤醒的睡眠状态
                                                     T(Stop)停止状态
                                                     Z(Zombie)僵尸状态,程序已经终止但无法被移除到内存外
C                              CPU使用率百分比
PRI/NI(priority/Nice)代表此程序被CPU使用的优先级,数值越小越快被CPU执行
ADDR                      指出程序在内存哪一部分,running的程序一般会显示[-]
SZ                            此程序用掉多少内存
WCHAN                 目前程序是否运行中,[-]代表运行中
TTY                         登入者的终端机位置,远程登录使用动态终端接口pts/n,?表示与终端机无关
TIME                       实际花费CPU运作的时间
CMD(command)
[root@localhost ~]# ps aux            <==列出所有目前内存中的程序,按照PID顺序显示
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 0.1 0.3 ? Ss : : /usr/lib/system
root 0.0 0.0 ? S : : [kthreadd]
root 0.0 0.0 ? S : : [ksoftirqd/]
%MEM                    该process占用物理内存百分比
VSC                         该process使用的虚拟内存量(kbytes)
RSS                         该process占用的固定内存量
[root@www ~]# ps aux | egrep '(cron|syslog)'
root 0.0 0.0 ? Ss Mar11 : syslogd -m
root 0.0 0.1 ? Ss Mar11 : crond
root 0.0 0.0 pts/ R+ : : egrep (cron|syslog)
 
top
-d 接程序画面更新的秒数,默认5秒
-b 以批次的方式执行top
-n 与-b搭配,意为需要进行多少次top的输出结果    top -b -n 2> /tmp/top.txt
-p 指定某些PID进行观察
top - ::  up  min,   users,  load average: 0.43, 0.39, 0.16
Tasks: total, running, sleeping, stopped, zombie
%Cpu(s): 2.3 us, 4.8 sy, 0.0 ni, 92.5 id, 0.3 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : total, free, used, buff/cache
KiB Swap: total, free, used. avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
root R 20.6 9.6 :23.26 gnome-shell
root R 9.5 2.0 :10.01 Xorg
root S 5.8 1.1 :05.71 gnome-terminal-
……
开机时间,已开机时长,用户数,系统在1、5、15分钟的平级负载,可以用uptime显示
目前程序总量和状态
CPU整体负载,按【1】查看多核,us表示用户空间占用cpu百分比
                                                        sy表示系统内核空间占用CPU百分比
                                                        ni表示用户进程空间内改变过优先级的进程占用CPU百分比
                                                        id表示空闲CPU百分比
                                                        wa表示由于IO 等待而使CPU处于等待的时间
                                                        hi表示硬件中断占用CPU时间百分比
                                                        si表示软中断占用CPU时间百分比
                                                        st表示虚拟服务占用CPU时间百分比                                      
物理内存
虚拟内存
PID :每个 process 的 ID ,按【k】杀掉
USER:该 process 所属的使用者;
PR :Priority 的简写,程序的优先执行顸序,越小越早被执行
NI :Nice的简写,与 Priority 有关,也是越小越早被执行,按【r】重写Nice
%CPU:CPU 的使用率,按【p】即可以CPU使用率排序
%MEM:内存的使用率,按【m】即可以内存使用率排序
TIME+:CPU 使用时间的累加
 
pstree    以树状结构显示进程
-p 同时列出每个程序的PID
-u 同时列出每个程序的所属账户
 
优先执行序(priority,PRI)越低代表越优先
PRI(new)=PRI(old)+nice          但最终RRI由系统分析决定
root可以随意调整自己或他人的程序,nice可调整范围为-20~19
一般用户仅可调整自己的nice值且范围为0~19。并且只能调高不能调低。
nice [-n 数字] command
renice [数字] PID

操作系统-进程(3)Linux下的进程相关命令的更多相关文章

  1. Linux下的进程控制块(PCB)

    本文转载自Linux下的进程控制块(PCB) 导语 进程在操作系统中都有一个户口,用于表示这个进程.这个户口操作系统被称为PCB(进程控制块),在linux中具体实现是 task_struct数据结构 ...

  2. linux下监控进程需掌握的四个命令

    linux下监控进程需掌握的四个命令   在LInux系统下,最困难的工作之一就是跟踪正在系统中运行的程序,尤其是现在,图形桌面使用很多的程序,只是为了生成一个桌面环境,系统中运行了太多的进程,幸运的 ...

  3. Linux下的进程与线程(一)—— 进程概览

    进程是操作系统分配资源的基本单位.线程是操作系统进行运行和调度的基本单位. 进程之间可以切换,以便轮流占用CPU,实现并发.一般进程运行在用户模式下,只能执行指令集中的部分指令. 当进程进行上下文切换 ...

  4. Linux下java进程CPU占用率高分析方法

    Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...

  5. linux下对进程按照内存使用情况进行排序

    linux下对进程按照内存使用情况进行排序的命令为:ps aux --sort -rss 详细解说参见 http://alvinalexander.com/linux/unix-linux-proce ...

  6. linux下查看进程占用端口和端口占用进程命令

    Linux下查看进程占用端口: 查看程序对应进程号:ps –ef|grep 进程名 REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号 ubuntu:查看进程占用端 ...

  7. linux 下的进程管理工具 supervisor

    在linux下监控进程: 1)yum install python-setuptools   linux下的python安装工具 2)easy_install supervisor     安装sup ...

  8. Linux下的进程与线程(二)—— 信号

    Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得 ...

  9. linux下查询进程占用的内存方法总结

    linux下查询进程占用的内存方法总结,假设现在有一个「php-cgi」的进程 ,进程id为「25282」.现在想要查询该进程占用的内存大小.linux命令行下有很多的工具进行查看,现总结常见的几种方 ...

  10. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

随机推荐

  1. DFS与BFS——理解简单搜索(中文伪代码+例题)

    新的方法和概念,常常比解决问题本身更重要. ————华罗庚 引子 深度优先搜索(Deep First Search) 广度优先搜索(Breath First Search) 当菜鸟们(比如我)初步接触 ...

  2. 配置mongoDB的错误

    1,将启动配置到服务的时候没有反应,后来发现没有用管理员模式打开shell命令,所以没有反应. 2,用管理员模式的时候报错 格式问题,将由空格的路径用“”包住即可 3.启动的时候报错windows不能 ...

  3. PHP array_map() 函数

    实例 将函数作用到数组中的每个值上,每个值都乘以本身,并返回带有新的值的数组: <?phpfunction myfunction($v){return($v*$v);} $a=array(1,2 ...

  4. Python List max()方法

    描述 max() 方法返回列表元素中的最大值.高佣联盟 www.cgewang.com 语法 max()方法语法: max(list) 参数 list -- 要返回最大值的列表. 返回值 返回列表元素 ...

  5. luogu P4321 随机漫游 期望dp 二进制 高斯消元

    LINK:随机漫游 非常妙的一道题. 容易想到倒推期望. 设状态 f[i][j]表示到达第i个点 此时已经到达的集合为j能走到全集的期望边数. 只要求出来这个就能O(1)回答询问. \(f[i][j] ...

  6. electron 开发 - win7 运行后白屏 黑屏

    解决思路: localhost:3000本地react项目确保运行无误 electron 官方demo跑一遍确认不是配置问题 切换electron版本,发现5可以6不行 google 官方issue ...

  7. 畅购商城(四):Lua、OpenResty、Canal实现广告缓存与同步

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 畅购商城(一):环境搭建 畅购商 ...

  8. this.getClass().getResource(String) 路径问题

    this.getClass().getResource(String) 路径问题    这里的默认当前路径是该类所在目录: this.getClass() 说明了一切!! 找到类,就找文件:很显然和类 ...

  9. lombok的基本使用方法

    在java刚开始学习的时候,首先就会学习封装.继承和多态,就拿封装来说,封装就是为了保护数据安全而将实体类内部数据保持为私有状态,如果外部程序想要访问里面的数据就必须调用此实体类提供的相关数据接口,这 ...

  10. Java—包装类/System类/Math类/Arrays类/大数据运算/Collection接口/Iterator迭代器

    基本类型包装类 8种基本类型对应的包装类如: 将字符串转成基本类型: 将基本数值转成字符串有3种方式: 基本类型直接与””相连接即可:34+" " 调用String的valueOf ...