linux进程管理
啥是进程?
进程是一个程序在其自身的虚拟地址空间中的一次执行活动
进程:资源申请,调度和独立运行的单位,会使用系统资源,程序不占用运行资源
程序:是静态的指令集合,进程是程序动态的执行过程,有生命周期,会产生和消亡
程序与进程的关系
进程的属性
进程带有cpu的访问限制,执行状态,优先级
PID ID UID GID TID
PID:进程号,区分不同的进程,系统启动的第1个进程是init PID=1,唯一一个以系统内核开启的进程,其它进程都是由init衍生的子进程(以进程启动的服务启动的快,占用资源多)
实际用户识别号 real user ID:识别正在运行此进程的用户和组
实际组识别号
有效用户识别号 effect user ID:确认一个进程它需要访问的文件有什么样的权限及优先权
有效级识别号
-----差一句话,听听------
ID:
TID:线程号(以线程启动的服务占用的资源少,用多少分配多少)
UID:
GID:
init PID=1
实际用户识别号 real user ID
实际组识别号
有效用户识别号 effect user ID
有效组识别号
进程的输入输出环境
打开文件的描述符:信息的源或是接收器(可以理解为系统的设备文件,可以是常规文件等等)(描述符:每一个进程都会从外部源读信息,或是将信息写入到外部源)
内在映射文件:用来存放进程的可执行代码,主要的作用是用来数据访问,也可以用来存储(proc目录下的)
文件系统环境:
环境变量:变量分为2种:局部变量,环境变量
遗留信息:指的就是一个进程的本身、及子进程、同胞的身份
凭证:指的就是一个访问限制,每个进程在对应的环境下运行时,系统都会给它一个权限
资源统计和限制:类似XP中的【进程管理器】各种资源使用多少
/dev/zero 无限产生一个值恒为0,但大小不为空的数据
/dev/null 相当一个无底洞,把数据全部输入此目录,此数据无法找回
&与ctrl+z 全是将工作挂后台,有所不同,ctrl+z会将进程停止
jobs查看所有后台进程
bg 将后台的程序状态由stopped变成running(例:bg %3)
fg 将后台工作调回(例:fg %3)
kill (信号是最原始的进程通信机制) (例:kill %1)
-1告诉对应的进程或工作重新读取一下配置文件
-2使用者中断ctrl+c
-9立即杀死(针对僵尸进程)
-15停止(默认)
kill -l 查询信号 (标准、实时信号[例:xclock],UNIX没有实时信号)
xkill 图型用
pkill 杀死一组进程(批量)
killall 杀死一组进程(批量)
pgrep -l 服务 (查看服务的组成员)
进程管理工具 ps top
进程管理工具 top ps (gnome-system-monitor图形界面)
top
q 退出
h/? 帮助
s 两次刷新时间(单位:S)
space 立即刷新(空格键)
m 根据内存的占用对进程排序
p 根据cpu的占用对进程排序
u 按特定用户的进程
k 杀死进程
r 更改进程优先级
-d num 定义两次刷新的秒数
-q 尽量经常刷新
-n num 刷新指定次数后退出
ps 静态的进程管理工具,只会显示你敲回车的那一刻的进程状态
-A,-e,ax 显示所有进程
-C command 显示包含指定命令的进程
-U 显示属于给定用户的进程
-t tty*(终端号) 显示属于指定终端开启的进程
-P pid号 显示指定进程号的进程
-f 详细信息
-l 长格式
-j 作业格式
-o 用户自定义
ps -aux会列出系统中所有进程
ps -aux|gred 进程名(查看指定后台进程)
ps -eo(显示指定字段
pid进程、username用户名、
size进程使用虚拟内存大小、
rss占用的RAM大小、stat显示状态、
pri此程序的优先级[数越小越高,程序默认,不可改]、
nice定义进程优先级[可修改,新pri=旧pri+nice值,root:-20-19 普通用户:0-19]、
ppid父进程号、
time进程跑了(ps L)多久、
cpu cpu占用率)
pstree|more 显示系统中各进程的父子及兄弟姐妹关系(父进程收集子进程的返回值、遗留信息。如果在子进程结束之前,父进程被终止了,就会产生孤儿进程,都会被init收养。正常情况,子进程正常终止,父进程会再开一个进程。正常情况,父进程正常终止,子进程会全部杀死)
renice 把现有的进程的nice优先级改变
USER谁开启的
PID进程号
%CPU CPU的占用率
%MEM 内存的占用率(RAM)
VSZ占用虚拟内存的大小
RSS占据内存的大小RAM
TTY此进程由哪个终端开启的(?后台自己开的、1-6本机开启的 、pts多数据表示远程开启或图形)
STAT进程状态
D收到信号时,不可唤醒不可运行
R正在运行或是在队列中等待
S休眠中的,等待某一事件触发,然后激活
T停止
W没有内存可分配(内核2.6以上就没了)
X死了(根本看不到)
Z僵尸进程
<高优先级的进程
N低优先级的进程
L有内存页分配并且被锁定的,一些独占的进程
s此进程下面还有子进程
l多线程进程
+位于后台的进程组(一般是系统的主要进程)
START此进程开始的时间
TIME此进程跑了多久(不包含暂停时间)
COMMAND执行的内容
一些常用命令
more /proc/infor-----查看CPU的(一级缓存:32K,二级缓存:4*256K=1M,三级缓存:)
dmesg 查看系统硬件信息
/var/log/dmesg 通过文件查看的内容比较全
uptime 统计开机时间
w或who 查看用户的登录时间
whoami 当前登录者
last 你最近的一些相关信息都会显示到list中(只显示最近一个月的,list -5显示最后5条)
date 系统时间(修改日期data -s 12/25/2013 修改时间data -s 16:00)
clock -r 查看系统时间与BIOS时间差多少(将当前时间写到BIOS里,clock -w)
ntpdate time(网络较时ntpdate time.windows.com[微软的],把123端口打开)
cal 日历(1752的9月少了10多天 cal 9 1752)