进程管理:
用户级进程、系统级进程(守护进程)
-------------------------------------------------------
监视进程:
PID:进程号,系统为进程分配的唯一编号,用于标识系统的身份。
PPID:父进程的PID号
TTY:启动该进程的的终端
USER/UID:执行该进程的用户身份及UID
PRI:进程的优先级,数字越大表示优先级越低
NICE:进程的谦让度,表示进程对CPU时间要求的迫切程度
STAT:进程的状态。如,R:正在运行或已经就绪,S:可以被唤醒的睡眠,D:不可唤醒的睡眠,T:已被停止,Z:进程已经终止但未被父进程回收。
%CPU:进程占用的CPU比例
%MEM:进程占用的内存比例
TIME:进程实际占用CPU的总时间
ADDR:进程在内存中的地址
SZ:进程占用的虚拟内存大小
CMD:启动进程的命令
-----------------------------------
proc文件系统:
一个建立在内存的特殊文件系统,挂载点是"/proc",它记录了个进程以及其他系统信息。在proc文件系统中,每个目录对应于一个进程,目录以进程的PID命名。进入某个进程对应的目录,里面有若干文件,这些文件记录了该进程当前运行的各种状态信息。应用程序可通过打开并读取这些文件来获取进程信息。proc文件系统实质为用户程序提供了一种了解Linux内核的方式。许多系统管理命令,如:ps命令,top命令等,通过读取并整理proc文件系统的内容后以友好方式呈现给用户。
cd /proc
ls -l
cd ./1
#1号目录记录1号进程信息,即:init进程,1号进程是系统的第一个用户级进程。
ls -l
cat ./status
cat /proc/meminfo
cat /proc/cpuinfo
-----------------------------------------
进程监视命令:
ps命令提供当前进程的状态快照。top命令实时提供进程信息。pstree命令查看进程家族树。lsof命令列出进程所打开的文件。
ps 【选项】:报告进程信息。
-l:长格式显示进程信息
-e:显示所有进程信息
-a:显示当前终端进程外的其他进程
-u:后加用户名参数,指定显示属于该用户的进程
ps -el
ps
ps aux #VSZ:进程占用虚拟内存大小;RSS:进程占用物理内存大小
ps -u linux
top 【选项]:实时报告进程信息
-d:后加参数,指定设定刷新进程信息的间隔时间。
-n:后加参数,设定总报告次数。
top -d 2 -n 3 #2秒,3次
pstree 【选项】 【进程PID号/用户名】:显示进程家族树
-p:显示每个进程PID号
-u:后加用户名参数,指定显示属于该用户的进程
ps
pstree
lsof 【选项】 【文件或目录路径】:列出某进程打开的文件
-p:后加参数:一组进程的PID
+d:后加参数:目录路径
-u:后加参数:用户名
--------------------------------------
进程与信号:
kill -l #列出系统定义的所有信号
SIGINT 程序终止信号,通知前台终止进程
SIGQUIT 与SIGINT类似,进程终止后生成文件core
SIGKILL 强行终止某进程,该信号不能被封锁
SIGCONT 恢复执行被SIGSTOP或SIGTSTP信号暂停的进程
SIGSTOP 通知操作系统停止进程的运行,该信号不可忽略
SIGTSTP 暂停进程,但可以被处理和忽略
进程终止,进程被消亡。
进程停止,还能继续被调度执行。
kill 【选项】 【-信号名称/编号】 [PID列表】:向进程发送信号
-l:列出系统中定义的信号
kill
kill -l
-----------------------------------------------------
调整进程优先级:
nice [选项】 【启动的命令及其选项和参数】:设定启动进程的谦让度
-n:后加参数,设置谦让度 #进程优先级:PRI,谦让度NI
nice -n -3 vim &
ps -l
renice 【选项】 谦让度 进程PID号:调整进程的优先级,普通用户仅能设置它所拥有的进程的优先级
-n:后加参数,谦让度
renice -n 3 [vim的进程PID号】
ps -l
---------------------------------------
守护进程(Daemon)和系统服务:
守护进程,父进程是init进程,独立于控制终端,不是通过bash启动。
一个守护进程启动或终止------>一种系统服务的启动或终止
xinetd超级守护进程
------------------------------
守护进程,如:
atd 提供执行临时性作业服务
crond 提供执行周期性作业服务
syslogd 提供系统日志服务
auditd 提供系统审计服务
network 提供激活/关闭各个网络接口服务
iptables提供防火墙服务
sshd 提供安全的远程连接服务
vsftpd 提供网络文件传输服务
smbd 提供局域网文件共享服务
named 提供域名解析服务
httpd 提供网页内容服务---www
xinetd 超级守护进程,提供对各项服务统一管理的服务
----------------------------------
守护进程启动、关闭:
chkconfig 【选项】 服务名:设置守护进程在各个运行级下的启动或关闭
--list:后加服务名,指定查看所要设置的守护进程的设置情况
--level:后加运行级编号
chkconfig --list sshd
chkconfig --level 4 sshd off
chkconfig --list sshd
#/etc/init.d/ssh ---ssh服务的shell脚本
#ls -l /etc/rc0.d | grep ssh* #查看符号链接
#ls -l /etc/rc1.d | grep ssh*
#ls -l /etc/rc2.d | grep ssh*
#ls -l /etc/rc3.d | grep ssh*
#ls -l /etc/rc4.d | grep ssh*
#ls -l /etc/rc5.d | grep ssh*
#ls -l /etc/rc6.d | grep ssh*
service 服务名 【start|stop|status|restart|……】:查看、启动、关停等系统服务
--status-all:显示所有独立工作服务的当前状态
service apache2 restart
----------------------------------------------------------
谦让度与进程优先级的调整:
#!/bin/bash
count=$1
while [ $count -gt 0 ]
do
count=$[ $count - 1 ]
sleep 0.001
done
echo "process $$finish."
#$$ 当前脚本的进程PID号
#process.sh
sudo date +"%M:%S";source process.sh 1000; date +"%M:%S"
(nice -n -20 `. ./process.sh 100000` &);(nice -n 19 `. process.sh 100000` &);top -d 10
kill -SIGSTOP process.shPID号1 process.shPID号2
------------------------------------------------------------
平均负载:系统在一段时间内的负载情况。
系统的负载:系统所要承担的计算工作量。
source process.sh 10000 &
top -d 10
(source process.sh 10000 &);(source process.sh 10000 &)
top -d 10
(source process.sh 10000 &);(source process.sh 10000 &);(source process.sh 10000 &);(source process.sh 10000 &)
top -d 10
补充:
其他资料:【Linux进程之初步了解】