欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
pstree:显示程序树,可以看到程序之间的关系。
程序管理
基本原理:可以通过发送给程序一个信号,告诉程序你想让它做什么。这些信号包括SIGNUP(重新启动), SIGINT(相当于ctrl+c)等等,可用man 7 signal查询详细信息。
基本方式
kill -signal PID
killall processName
killall emacs
程序执行的优先级
priority(PRI):PRI越低表示越优先,由内核动态调整,用户无法改变
nice
PRI(new) = PRI(old) + nice,所以可以通过nice值调整PRI,但并不是修改后就能生效,系统还要去分析判断。
nice值设定方式
方式一:启动程序时,用 nice -n command 设定,n为nice值,范围-20~19
方式二:程序已经启动,用 renice [number] PID 设定
系统资源观察
free: 观察内存
$ free
total used free shared buffers cached
Mem: 3962820 2067520 1895300 0 379912 925868
-/+ buffers/cache: 761740 3201080
Swap: 3905532 0 3905532
uname: 查看系统和内核信息(eg: uname -a)
$ uname -a
Linux minix007-ubuntu-desktop 3.2.0-37-generic-pae #58-Ubuntu SMP Thu Jan 24 15:51:02 UTC 2013 i686 i686 i386 GNU/Linux
uptime: 观察系统启动时间和工作负载
$ uptime
15:14:15 up 4:31, 2 users, load average: 0.23, 0.24, 0.23
netstat: 查看网络状态
$ netstat -t #列出tcp网络封包数据
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 1 0 minix007-ubuntu-des:44769 mistletoe.canonica:http CLOSE_WAIT
tcp 0 0 minix007-ubuntu-des:37063 112.90.137.192:http ESTABLISHED
dmesg: 查看内核产生的信息 开机时,内核会检测硬件信息,运行中,内核也会产生一些信息,这些信息被放在内存中一个受保护的区域,使用 dmesg可以得到这些信息。
vmstat: 侦测系统资源变化
$ vmstat 1 3 #统计系统状态,每秒1次,共3次
procs ———–memory———- —swap– —–io—- -system– —-cpu—-
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 1889048 380780 929772 0 0 17 14 160 286 2 2 96 1
2 0 0 1889172 380780 929772 0 0 0 0 435 788 1 1 99 0
2 0 0 1889164 380780 929772 0 0 0 0 428 767 1 1 99 0
4 特殊文件与程序
这一节讨论的是SUID/SGID/SBIT与程序权限的关系
passwd:为什么普通用户执行passwd时拥有了root权限?这是因为执行passwd时,会取得一个新的程序与PID,该PID 产生时通过SUID赋予这个程序相应权限。
/proc:内存中运行的程序都以文件或目录的形式存在于/proc目录下。
fuser:找出使用指定文件,文件系统,或目录的程序。例如使用umount时发现[device is busy],就可以使用fuser找出哪个程序在使用 文件系统。
lsof:找出程序使用的文件
pidof:找出正在执行的程序的PID
$ pidof emacs
7021
5 SELinux初探
SELinux是什么:Security Enhanced Linux,安全强化的Linux.SELinux是在进行程序,档案等细部权限设定 依据的一个核心模块。
[1][2]
什么天荒地老,什么至死不渝。都只是锦上添花的借口…