linux系统管理 系统进程

时间:2023-01-23 23:24:25

进程介绍

'进程'
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源

ps命令基本使用

ps命令用来查看在计算机系统中那些程序正在执行,以及执行的情况。可以用它来找出所有的process id和名称。
ps命令也可以用来列出所有程序占用内存的情况
'ps -(选项)'
'a' 显示一个终端的所有进程,除了会话引线
'u' 显示进程的归属用户以及内存的使用情况
'x' 显示没有控制终端的进程
'-l' 长格式显示,显示更加详细的信息
'-e' 显示所有进程和'-A'作用一致
实例:
'ps aux'
查看系统中所有进程

[root@ssgao1987 ssgao]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  19364  1604 ?        Ss   Jul08   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Jul08   0:00 [kthreadd]

'USER'该进程由哪个用户产生的
'PID' 进程的ID号
'%CPU' 该进程占用CPU资源的百分比,占用越高,进程越耗费资源
'%MEM'该进程占用物理内存的百分比,占用越高,进程越耗费资源
'VSZ' 该进程占用虚拟机内存的大小,单位KB
'RSS' 该进程占用实际物理内存的大小,单位KB
'TTY' 该进程是哪个终端运行的,tty1-tty7表示代表本地控制台终端,tty1-tty6是本地字符界面终端
tty7是图形终端,pts/0-255代表虚拟终端
'STAT' 进程状态,常见的状态R:运行,S:睡眠,T:停止状态,s:包含子进程,+:位于后台
'START' 进程的启动时间
'TIME' 该进程占用CPU的运算时间,注意不是系统时间
'COMMAND' 产生此进程的命令名

PSTREE基本使用

>>>pstree [选项]
-p: 显示进程的PID
-u:显示进程的所属用户

[root@ssgao1987 ssgao]# pstree -pu
init(1)─┬─auditd(1135)───{auditd}(1136)
       ├─console-kit-dae(1387)─┬─{console-kit-da}(1388)
       │                       ├─{console-kit-da}(1389)
       │                       ├─{console-kit-da}(1390)
       │                       ├─{console-kit-da}(1391)
.......

top命令基本使用

top命令可以查看目前程序的执行情景和内存使用。和ps类似,不过它会几秒钟更新一次系统状态方便追踪。
离开按Ctrl+C/或q键
'top [选项]'
'-d' 秒数:指定top命令每隔几秒更新,默认是3秒
'-b' 使用批处理模式输出。一般和-n选项合用
'-n'次数:指定top命令执行的次数
'P'以cpu使用率排序
'M'以内存的使用率排序
'N'以PID排序
'q' 退出top
top -b -n 1 >top.log
将所有进程刷新一次的信息全部写入到top.log文件
[root@ssgao1987 ssgao]# top

top - 10:23:12 up 17:16,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  82 total,   1 running,  81 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1020052k total,   382400k used,   637652k free,    62460k buffers (加速写入)
Swap:  1048572k total,        0k used,  1048572k free,   204940k cached(加速读取)
------------------
第一行:
top - 10:23:12 up 17:16,  1 user,  load average: 0.00, 0.00, 0.00
1) 系统当前时间
2) 系统的运行时间
3) 当前登录的用户数
4) 系统在1分钟,5分钟,15分钟的平均负载,一般认为小于1时,负载较小,如果大于1,系统已经超出负荷
------------------
第二行:
Tasks:  82 total,   1 running,  81 sleeping,   0 stopped,   0 zombie
1) 系统总进程数
2)正在运行的进程数
3) 睡眠的进程
4) 正在停止的进程
5) 僵尸进程,如果不是0,需要手工检查僵尸进程
------------------
第三行:
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
1) 用户模式占用的CPU百分比
2)系统模式占用的CPU百分比
3)改变过优先级的用户进程占用的CPU百分比
4)等待输入/输出的进程占用CPU百分比
5)硬中断请求服务占用的CPU百分比
6)软中断请求服务暂用的CPU百分比
st虚拟时间百分比,就是当虚拟机时,虚拟CPU等待实际CPU的时间百分比
------------------
第四行
Mem:   1020052k total,   382400k used,   637652k free,    62460k buffers (加速写入)
1)物理内存总量
2)已经使用的物理内存数量
3)空闲物理内存数量
4)作为缓冲区的内存数量
------------------
第五行:
Swap:  1048572k total,        0k used,  1048572k free,   204940k cached(加速读取)
1)交换分区
2)已经使用的交互分区的大小
3)空闲交换分区大小
4)作为缓存的交互分区的大小

kill命令

kill 命令用来终止一个正在执行的进程,如一个执行过程失败了,可以把这个程序终止,避免留在内存中占用系统资源。
不过,它的实际意义是送一个信号给这个正在执行的程序,叫它自杀。可以发送很多信号给这写程序,也可以让他们受到信好后做很多事情。
命令格式 kill -(选项) pid
在执行kill命令前。可以先用ps查一下某宕掉程序的pid,然后使用kill除去某个程序。例如终止pid为90的程序:kill 90
-l 列出所有可用的信号名称
-p 印出pid并不发送信号
-signal 其中可用的讯号有HUP(1) ,KILL(9),TERM(15),分别代表着重跑,砍掉,结束
将pid为323的进程砍掉
kill -9 323
将pid为456的进程重跑(restart)
kill -HDP 456
kill -1 2235
重启进程
kill -9 2236
强制杀死进程
kill 2236
不强制杀死,待执行结束后终止进程

java的进程查看

jps命令
查看java进程
列出所有的jvm实例
是jdk1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合linux平台简单查看java进程的一些简单情况
'jps -q'
只显示pid,不显示class名称,jar文件名和传递给main方法的参数
'jps -m'
输出传递给main方法的参数,在嵌入式jvm上可能是null
jps [ options ] [ hostid ]
选项
-q 仅输出VM标识符,不包括class name,jar name,arguments in main method
-m 输出main method的参数
-l 输出完全的包名,应用主类名,jar的完全路径名
-v 输出jvm参数
-V 输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件
-Joption 传递参数到vm,例如:-J-Xms48m