Linux常用的进程管理和查看指令
&背景工作做符
ctrl+ z 暂停
ctrl + c 停止
jobs [-l(list) , r(running jobs) ,-s(stop jobs)] 观察背景工作的状态
fg %jobnumber 将背景工作拿到前景执行
bg %jobnumber 让工作在背景的状态变成运作中(被ctrl暂停在背景的工作)
=========================================================
kill -l ===>列出q能够使用的signal有哪些
常用的kill的signal
-1 重新读取一次参数的排位置文件(类似reload)
-2 与ctrl的的i一样
-9 立即强制停止一个工作( .filename.swap 文件会被遗在系统中)
-15 正常停止一个工作
kill signal PID或者[%jobnumber] (给该进程发送一天命令)
====================================
上面的求导背景中去的工作都是你登陆是派生出来的子孙进程,在退出登陆后劲不能继续执行了
脱机管理
如果工作需要很长时间,你不能直到它执行完才下机,可以用at来处理, at是将工作放置到系统背景下,而与终端机无关
====================
程序管理
找出最耗系统的程序
找出内存中又问题的程序
设置程序的优先级
程序的观察
ps 将某个时间点得进程运作情况获取下来
ps 不加-a 或者-A参数仅仅列出与自己相关的process信息
aux 观察系统中所有进程的数据
-A 所有process都显示出来 与-e一样
-a 不与terminal有关的所有程序
-u 有效使用者(effective user )的相关process
-l 列出叫详细的信息,包括pid
===============================================
[root@Sweety /]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 2685 2683 0 80 0 - 27117 wait pts/1 00:00:00 bash
4 S 0 3232 1 0 80 0 - 27050 wait pts/1 00:00:00 mysqld_safe
4 R 0 3647 2685 0 80 0 - 27033 - pts/1 00:00:00 ps
F : 代表这个程序的旗标(flag) ,说明这个程序的总结权限
4代表root
S: 代表程序的状态
R(Running)
S(sleep)
T(stop)
Z(Zombie)
C: 代表Cup的使用率
ADDR(address) : 是kernel function 指出程序在内存中的那个部分如果是running的程序,一般会显示 -
SZ (size) : 程序用掉的内存
WCHAN : 表示程序是否在运行中 - 表示正在运行
TIME+: 使用的cpu累加时间
CMD : 触发进程的命令
RSS : 进程占用固定内存的大小
=================================================
top: 动态观察程序的变化
-d 数字 动态更新的时间差
-b : 以批次的方式执行top(通常搭配重定向和-n使用)
-n : 与-b一起使用, 意义是需要执行几次top 输出的结果
-p 进程的pid : 观察指定pid的进程
top在执行过程中可以使用按键
? : 显示可以在top中输入的按键指令
P : 以cpu占用率排序(默认)
M: 以Memory的使用排序
N: 以pid来排序
T : 以该process占用的cpu积累时间排序
r : 给PID重新定一个nice值 (按下r 然后输入要修改的pid号码)
1 : 切换查看不同cpu的负载率
q : 离开
=====================================================
pstree
-u : 同时列出每个process的PID
-p : 同时列出每个process的所属账号
======================================================
priority 和nice
PRI值是有核心动态调整的用户无法直接调整PRI的值;如果用户想调整PRI 的值,就得透过nice的值,一般来说,PRI和NI 的相关性如下
PRI(new) = PRI(old) + nice(可以是-20~19之间)
不过,如果原本饿PRI得值是50 ,并不是我们给一个nice=5 就会让PRI变成55 ,因为PRI是系统动态决定的,nice的值可以影响PRI,但最终的PRI值仍是要经过系统分析后才决定的;(nice的值有正负 郑表示降低优先级,符表示增加优先级)
一般用户只可以调整自己的process的nice值,且只能调高nice的值
调整process的优先级就是调整process的nice值
如何调整某个程序的nice值
1一开始执行程序就给予一个特定的nice值: 用nice指令
nice -n 数值 命令(启动程序的命令)
-n 后面接一个数值 (-20~ 19)
2已经存在的进程的nice重新调整(或者top) : renice
renice 数值(需要调整到饿nice值) PID(调整的process的PID)
==========================================================
我们可以使用top观察到很多的系统资源和状态,还有其他的一些工具也可以查看系统资源
free [-m 以M为单位显示]
===========================================================
uname : 查看系统的核心相关信息
-a : all 所有
-s : 系统核心名(Linux)
-r : 核心版本 ( 2.6.32-358.el6.x86_64 )
-p : cpu类型 ( x86_64 )
-i : 硬件平台 (x86_64)
==========================================================
uptime : 观察系统启动时间与负载工作 (其实酒红色显示出top命令的第一行)
==========================================================
netstat : 追踪网络或插槽文件
-a : 所有
-t : 列出tcp网络封包的数据
-u : 列出UDP蒸包的数据
-l : 列出目前正在监听的服务
-p 显示PID
==========================================================
------第一部分----相关字段意义----------
proto : 网络封包协议 ,主要为tcp何udp
Recv-Q : 由非远程主机链接到此socket的复制的中bytes数
Send-Q : 非远程主机传送过来的acknowledged 总bytes数
Local Address : 本地端的IP:port情况
Foreign Adresses :远程主机的IP:Port情况
state : 联机状态 ,主要有建立(ESTABLISHED) 和监听(LISTEN)
/proc/* 代表的意义
进程都是在内存中的,而内存当中的数据有都是写到/proc/*这个目录下的,所以我们可以直接观察/proc这个目录当中的档案
==========================================================
fuser: 找出正在使用该档案的程序
有时候我们想知道一个程序在这次启动过程中到底开启了多少档案,可以利用fuser来擦看
example : fuser -uvm /proc ==>查看偶遇多少程序在进行/proc文件系统的存取
===========================================================
lsof : 列出被程序开启的档案文件名
===========================================================
pidof : 列出某个正在执行的程序的pid
pidof [-sx] program_name
-s : 仅列出一个PID而不是列出所有
-x : 同时列出program name 可能的PPID 那个程序的PID