## 查看kill级别[root@localhost ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+338) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX进程组成部分: 已分配的地址空间 进程ID(PID) 程序的代码 进程状态:运行中、等待运行、睡眠等cpu数量、内核数量进程优先级:影响进程运行时间 优先级越高,同等代码量运行更早结束进程管理:进程调度、中断处理、信号、进程优先级、进程切换、进程状态、进程内存等进程的生命周期:

PID: CentOS 5、6:PID1:init CentOS7:PID1:systemd僵尸进程:不执行代码、占用内存地址空间(kill不能杀死,已执行成功) 解决僵尸进程: 等待父进程响应 杀死父进程 所父进程为init或systemd,则重启解决线程: 在同一进程中,进程中产生的一个执行单元,进程中线程并列运行 线程之间可以资源共享(如:内存、地址空间、打开文件等)上下文切换: (CPU切换)不能有太多上下文切换,每次切换要刷新寄存器和高速缓存区,以便释放空间给新进程中断处理:优先级最高任务之一 由I/O产生(in、out) 硬中断:硬件产生 软中断:被用来处理可以推迟的任务,协议等PID:进程IDPPID:父进程ID #通过ps -ef 查看UID、GID进程状态:R运行、S睡眠、Z僵尸进程执行的优先级进程所连接的终端名:有些无终端,脱离终端,例如一些服务资源占用:%CPU、%MEM## 查看进程$ ps aux$ ps -aux (与上一个命令效果一样) a: 显示当前终端关联的所有进程 u:基于用户的格式显示 x:显示所有进程,不以终端机来区分## ps 命令显示完整command$ ps -auxww每列的意思:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND用户 进程id cpu占用比 内存占用比 终端 状态 命令启动时间 命令实际执行时间 执行的命令VSZ:占用虚拟内存大小(kb)(申请的)RSS:占用物理内存大小(kb)(实际使用的)stat:Linux进程的5中基本状态: R:正在运行,准备运行 S:睡眠中,可被某些讯号(signal)唤醒 T:停止 Z:僵尸 D:不可中断,存在于I/O(in/out)情况下 5种基本状态后还可以加: < 进程运行在高优先级上 N 进程运行在低优先级上 L 锁定在内存中 s 控制进程 l 多线程 + 运行在前台stat:进程触发启动时间time:进程实际使用CPU时间command(CMD):进程实际指令注意:最后一列[xxx]: 括起来的进程是内核态 没有括起来的用户态进程注:
ctrl+c 发送sigint信号,终止一个进程ctrl+z 发送sigstop信号,挂起一个进程,将作业放置后台(暂停)ctrl+d EOF,输入完成或者注销练习:
终端1:tar 压缩
[root@localhost ~]# tar -zcvf /root/etc.tar.gz /etc终端2:ps aux #查看
[root@localhost ~]# ps aux |grep etc.tar.gz |grep -v greproot 31720 0.0 0.1 123712 1376 pts/1 R+ 16:14 0:00 tar -zcvf /root/etc.tar.gz /etc[root@localhost ~]# ps aux |grep etc.tar.gz |grep -v greproot 31720 8.2 0.1 123748 1492 pts/1 S+ 16:14 0:00 tar -zcvf /root/etc.tar.gz /etc[root@localhost ~]# ps -ef # 显示进程,能得到ppid -e # 显示所有进程 -f # 显示完整格式输出练习:测试CPU实际使用时间
[root@localhost ~]# dd if=/dev/zero of=/root/yq.txt bs=1M count=3000记录了3000+0 的读入记录了3000+0 的写出3145728000字节(3.1 GB)已复制,37.0355 秒,84.9 MB/秒[root@localhost ~]# ps aux |grep yq.txt |grep -v greproot 31738 49.0 0.1 109032 1412 pts/0 R+ 16:18 0:00 dd if=/dev/zero of=/root/yq.txt bs=1M count=3000[root@localhost ~]# ps aux |grep yq.txt |grep -v greproot 31738 51.0 0.1 109032 1412 pts/0 D+ 16:18 0:01 dd if=/dev/zero of=/root/yq.txt bs=1M count=3000time 命令
[root@localhost ~]# time lsanaconda-ks.cfg etc.tar.gz ps.sh yq.txtreal 0m0.003s #实际执行时间user 0m0.000s #用户执行时间sys 0m0.003s #内核执行时间 -m #Mb单位显示 -g #Gb单位显示 -h #常见单位显示[root@localhost ~]# free -h total used free shared buff/cache availableMem: 972M 100M 78M 7.7M 792M 682MSwap: 299M 0B 299MMEM:物理内存swap:交换分区所占内存 total used free shared buff/cache available 总空间 已用 空闲 共享 缓存/缓冲 可用大小 内存读/写free、available大小关系受缓存/缓冲影响 free>available 缓存/缓冲占用available一部分 free<available 缓存/缓冲未占用,available总和比free大