《linux 进程 详解》由会员分享,可在线阅读,更多相关《linux 进程 详解(16页珍藏版)》请在金锄头文库上搜索。
1、PID 各个参数的解释PID是内核管理进程的标识符,init pid 永远为 1Code Code是进程调用程序的代码块变量 变量就是Library Library即库文件,是进程File File即参数,argument,被操作对象进程的概念是 60年代初首先由麻省理工学院的 MULTICS系统和 IBM公司的 CTSS/360系统引入的。简单结构:进程(process)其实是用户的代理(agent)可以用 pstree查看当前系统进程机构,如下如所示我们知道对 linux来说一切皆文件,进程也不例外,我们可以通过 ls /proc(proc 文件系统是一个伪文件系统,它只存在内存当中,而不
2、占用外存空间)查看与进程相关联的文件,如内核的功能。说之前我们来了解一下内核的五个子系统一:内存的管理二:进程的管理三:硬件管理四:文件系统管理五:cpu 管理进程的调度控制着进程 cpu的访问,当需要选择下一个进程运行的时候,有调度程序选择最值得运行的进程。可运行的进程实际是进等待 cpu资源的进程,也就是 R进程,如果某个进程在等待其他资源,则该进程是不可运行进程Linux中进程分为两类1:用户进程,有用户通过终端(terminal)命令启用的进程,因此又称为终端进程2:守护进程(daemon):在系统引导式时就启动,是后台服务进程大多数服务进程都是通过守护进程实现的(crond,打印进程
3、),与终端无关查看系统进程Ps a 显示所有与终端有关的进程x 显示所有与终端无关的进程,即 daemon进程u 以用户为导向显示,即显示进程属主进程结构,如下图USER:进程属主,既有那个用户发起的进程PID: Process Id,进程唯一标识符%CPU: Currently, it is the CPU time used divided by the time the process has beenrunning (cputime/realtime ratio), expressed as a percentage.%MEM: ratio of the process?. resid
4、ent set size to the physical memory on the machine, expressed as a percentageVSZ:该进程使用的虚拟内存量(KB)RSS:该进程占用的固定内存量(KB)TTY:该进程哪个终端上运行,若与终端有关,则显示(?)。如果 tty1-tty6市本级上的登陆者进程,若为 pts/0等,则表示有网络连接主机进程STAT:该进程的当前状态。主要状态有:-R 该进程当前正在运行,或者等待运行-S 该进程当前正在睡眠,但可被某些信号唤醒-T 该进程当前正在检测或停止-Z 该进程已终止,但其父进程无法正常终止它,造成“僵尸”进程状态ST
5、ART:该进程被触发启动的时间TIME:该进程实际使用 CPU运行的时间COMMAND:该进程的实际命令补充:优先级问题状态 S后边的字符表示该进程的优先级:表示高优先级N:低优先级查看进程:前面已经有所介绍,这里详细介绍一下ps aux(不加) 查看所有进程(包括与终端有关没关的)ps axo keyword,keyword,keyword 查看进程的某些选项eg:ps axo comman,ttyps ef 以完整的格式显示搜索特定的进程1:传统的正则表达式eg:ps axo comman,tty |grep ttys02:命令pgrep u user 搜索由特定用户发起的进程 eg pg
6、rep u rootpgrep G group 搜索由组户发起的进程 eg pgrep G rootpgrep p pid 搜索由特定用户发起的进程 (猜想)更多 man pgreppidof +服务名称 显示属于某服务的进程的进程号eg #pidof sshd#2717 1982信号 :就是进程之间通信的信息可以用 kill l 上图为所有 linux所有信号常用的有 1)SIGHUP :重读配置文件9)SIGKILL :强行终止进程15)SIGTERM :允许该进程完成本次计算在终止(默认)19)SIGSTOP :结束进程kill + pid =kill -15 +pid = kill -
7、 SIGTERM PID = kill - TERM PID killall -u user 结束属于某个用户的进程服务名称(httpd) 结束某个服务的全部进场修改优先级每个进程在启动的时候都有一个优先级(priority),优先级范围在 -20-19 之间,默认是 0,也可以修改,现在就来学习一下怎么修改进程优先级一:未启动的进程nice n num command 表示 command命令以优先级 n启动二:已经触发的进程renice num p pid 重新调整一个进程的优先级renice -1 p 11114 将 11114进程的优先级调整为-1普通用户无法提高自己的优先级,但可以降
8、低自己的优先级top交互式查看进程,与之前 ps(一个进程 snapshot)不同的是,这里可以动态查看各个进程的状态top的一些参数-d :后面可以接秒数,表示 top刷新时间(默认 5s)-b :可以批处理的方式执行 top,-n :与-b 连用,表示进行几次的 top输出文件-p :指出某些个 pid来进行观察监测eg: top d 2 top b n 2 /tmp/top.txttop -d 2 p10604 top执行结果参数分析参数分析仅进行一次的工作任务分配:atat的语法at l 可以显示所有的作业列表at作业的控制命令分组当要让两个命令一起执行时,就要对命令进行分组(说明:分
9、组后的命令不是在当前shell中执行的,而是在其子 shell中进行)下面试验一下date;who|wc -l看到结果并非是我们预期的那样,这是我们就得进行分组操作(date;who)|wc -l成功了,所以当需要两个命令同时执行时,就需要命令分组信号捕捉问题trap可以根据后面的信号指定不住道信号格式trap command SIG*这表示当收到 SIG*信号时,trap 执行 中间的命令egtrap () trap echo “you stop it & exit 3” SIGNINTCONFIGURING THE BASH SHELLshell变量:环境变量 本地变量env 可以查看所有
10、的环境变量set 可以查看所有的变量(包括环境变量和本地变量)export可以声明一个环境变量export PATH=$PATH:/root此声明只对当前 shell生效,重启系统后就会失效linux中常见的环境变量HOSTNAME:主机名称,可以用 hostname命令临时声明一个,如果要永久生效必须得写到配置文件中/etc/sysconfig/network/,如图所示其他的如图所示alias可以为命令指定自己喜欢的别名例:alias cl=clear 前一个是别名,后者是命令当起别名是,命令中含有空格需要用单引号包括住alias cdn= /etc/sysconfig/network-s
11、cripts/ifcfg-eth0 这样的声明只对当前 shell生效,永久生效后面介绍startup文件时系统初始化用户 shell环境的配置文件linux shell分为两类一:登陆 shell登陆 shell是用户可以通过账号密码登陆,获取系统资源,登陆二:非登陆 shell系统完成自动化管理所处的 shell环境,运行在系统的后台,不需要登陆,如crontab,at 等profile登陆配置文件在/root 目录下有关于 profile的隐藏文件/etc/profile /etc/profile.d /etc/bashrc在用户的家目录下,也有几个关于 profile的文件/.bash
12、-profile ./bashrc登陆 shell读取配置文档的顺序/etc/profile - /.bash-profile - /etc/profile.d -./bashrc-/etc/bashrc,看过这个顺序,我们看出家目录中的设置回覆盖全局变量,非登陆 shell读取配置文档的顺序/.bashrc - /etc/bashrc - /etc/profile.dprofile文件是登陆 shell环境配置文件bashrc 非登陆 shell的环境配置文件/etc/profile ,/.bash-profile 定义环境变量及执行一些系统检查命令/etc/bashrc ./bashrc 定义本地变量,也可以做一些改名,如 aliassource +文件 表示重读文件如当我们配置过网卡属性时,我们不仅可以用 service network restart 或 ifdown eth0 &ifup eth0 ,我们也可以用 source /etc/sysconfig/network-scripts/ifcfg-eth0,重读一下配置文件即可source +文件= . (点) 文件service 服务名称 status 可以查看某个服务的状态,与 chkconfig 服务名称 -list 效果差不多