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

Linux常用的进程管理和查看指令