需重点掌握内容:
一、查看进程
二、进程控制
三、作业控制
四、进程优先级
一、查看进程
ps命令
process snapshot
查看当前终端上运行的进程
# ps
# ps aux
# ps auxf
其中所用参数含义如下:
a 只能查看所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系(使用pstree查看更详细的父子关系)
显示结果中每列含义如下:
USER 进程拥有者
PID process identify
TTY 进程在哪个终端运行
查看tty的方法:
#tty
其中'?' 表示这个进程开启的时候没有占用终端
TIME 进程占用cpu的总时间
CMD 进程名称
%CPU 进程占用的cpu百分比
%MEM 进程占用memory百分比
VSZ 进程占用的虚拟内存大小
RSS 占用的物理内存大小
STAT 当前进程状态
#man ps
R running
S sleep
T stop
Z zombie(僵死,僵尸)
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is
being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by
its parent.
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and
custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL
pthreads do)
+ is in the foreground process group
--sort 按指定字段排序显示:
[root@wing ~]# ps aux --sort %cpu | less
[root@wing ~]# ps aux --sort %-cpu | less
-o 显示指定字段:
[root@wing ~]# ps axo user,%cpu,command --sort -%cpu | less
[root@wing ~]# ps -eo user,%cpu,%mem,command --sort %cpu
#ps -elf
-e 显示所有进程
-l 长格式显示
-f 完整格式
#ps -e 常用
pstree命令
查看进程树
#pstree
-a 显示参数
-p 显示pid
-u 显示用户名
lsof命令
用在这里查看带端口的进程)
lsof -i:80
查看端口为80的进程
pidof命令
#pidof 进程名称
pgrep命令
#pgrep -l eyes
1179 xeyes
进程pid文件
cd /var/run
# cat /var/run/httpd/httpd.pid
12265
w命令
查看当前登录系统账户进程
[root@server ~]# w
16:51:43 up 8:30, 7 users, load average: 0.11, 0.27, 0.30
USER TTY FROM LOGIN@ IDLE JCPU
PCPU WHAT
root :0 :0 08:22 ?xdm? 29:39 0.23s
gdm-session-
root pts/0 :0 14:13 1:43 0.30s 0.30s bash
root pts/1 :0 11:19 5:19 0.62s 0.62s bash
root pts/2 :0 14:13 1:39m 0.06s 0.01s less
root pts/3 :0 14:54 7.00s 0.06s 0.01s w
root pts/4 :0 16:25 25:51 0.06s 0.06s bash
root pts/5 :0 16:40 7:11 0.24s 0.24s bash
who命令
查看当前登录账户的简要信息
[root@server ~]# who
root :0 2017-11-27 08:22 (:0)
root pts/0 2017-11-27 14:13 (:0)
root pts/1 2017-11-27 11:19 (:0)
root pts/2 2017-11-27 14:13 (:0)
root pts/3 2017-11-27 14:54 (:0)
root pts/4 2017-11-27 16:25 (:0)
root pts/5 2017-11-27 16:40 (:0)
users命令
只查看当前登录账户名称
[root@server ~]# users
root root root root root root root
top命令
强大的进程查看工具,实时的查看进程的状态
#top
h或者? 显示top内部帮助信息
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
k 输入pid杀死进程
q 退出
1 展开cpu信息
f 打开列显示操作界面
W 保存当前列显示设置
R 排序反转
z 彩色显示
r 调整进程的nice优先级
[root@wing ~]# top -d 2 -p 1068 -bn1
[root@wing ~]# top -u apache
-d 数字 #指定刷新时间,单位秒
-p pid #指定单独显示某一个进程的信息
-bn 1 #静态打印进程信息1次,数字1可改
二、进程控制
kill命令利用信号和pid控制进程
语法:
#kill 信号(signal) pid
常用信号如下:
-1 HUP 重新加载进程或者重新加载配置文件
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
数字和进程号缩写可通用,含义相同,比如:
#kill -HUP pid
#kill -STOP pid
-l 显示所有可用信号:
#kill -l
#man 7 signal #查看所有信号的解释
其他进程控制命令:
#killall 信号 进程名称 //杀死所有跟进程相关的进程
#pkill -9 进程名称 //按进程名称杀死进程
#pkill -t 终端 //按终端杀死进程
不加-9只杀死在终端上运行的进程,加-9连终端本身一起干掉
#pkill -u 用户名称 //按用户杀死进程
#xkill //执行命令后用鼠标点杀。。。点杀?发现自个儿这词儿用的不错,哈哈
======================================
三、作业控制
作业控制之jobs:
ctrl+z 此快捷键把程序放到后台(这方法会让程序在后台暂停)
#fg %1 //把程序调到前台,%是用来修饰job number,1就是job number。
#jobs //查看工作号
#bg %1 //让暂停的程序在后台运行
#kill -9 %1 //按工作号杀死进程
#kill -9 pid //千万不能把%丢掉,不然会变成这条命令的含义,可怕
作业控制之screen:
screen提供会话恢复和多窗口功能,本节讲解常用的会话恢复功能
先安装软件:
#yum install screen -y
实例:
**开启screen会话**:
[root@wing ~]#screen -S lala //给screen起个名字叫lala
[root@wing ~]# ssh 192.168.245.3 //远程连到245.3这台机器
root@192.168.245.3's password:
Last login: Sun Nov 26 19:48:39 2017 from 192.168.245.137
[root@master ~]# vim aa.txt //编辑一个文件,在没有编辑完的情况下关闭终端
**恢复screen会话**:
[root@wing ~]# screen -list
There are screens on:
39160.lala (Attached)
38966.pts-0.wing (Detached)
2 Sockets in /var/run/screen/S-root.
[root@wing ~]# screen -r 38966 //38966是screen lala中运行的会话进程
回车后神奇恢复被意外中断的会话,恭喜你已经会用screen杀手级功能了:)
四、进程优先级
优先级本身是"不能"修改,通过nice值修改优先级。
普通账户只能调高nice值,不能往低调
root账户随便调
nice值越高,优先级越低。
nice值范围:-20到19
查看进程优先级:方式很多
# top
# ps axo pid,command,nice --sort=-nice | less
# ps -elf
PR:priority
NI:nice
指定进程优先级运行程序:
#nice --15 firefox &
修改进程优先级:
# renice 10 7116 nice值前面不能加-
本文转自 CrazyWing 51CTO博客,原文链接:
http://blog.51cto.com/fklinux/2044927