1.centos 5:SysV init
系统启动及引导时创建各子进程,通过shell脚本实现,由于脚本中每个命令都会启动一个进程,所以其开机速度很慢。
2.centos 6:upstart
系统开及引导时,可使用并行的方式启动某些有关联的进程,提升开机速度。
3.cetos 7:systemd
开机后启动一个init进程,通过此进程启动各项服务,引导系统(其背后最多启动几十个进程),开机及关机速度很快。
ps:init进程:/sbin/init
1.内核参数:可设置其相关的值从而调整内核运行特性的参数:/proc/sys
2.状态变量:用于输出内核中统计信息或状态信息,仅用于查看信息
3.参数:将内核参数模拟成文件系统类型,文件,目录方式
4./proc/PID:进程的相关信息
5.pstree:已树状结构显示进程(display a tree of processes)
[root@kasumi ~]# ls /proc/
1 1453 1594 242 303 47 577 6452 724 99 interrupts mpt tty
10 1457 1606 243 304 483 578 6501 725 acpi iomem mtrr uptime
1034 1463 17 246 305 484 579 6526 726 asound ioports net version
11 1464 1704 247 31 5 580 6542 728 buddyinfo irq pagetypeinfo vmallocinfo
1155 1470 1712 25 3149 503 581 6557 729 bus kallsyms partitions vmstat
1156 1475 18 255 32 506 582 658 730 cgroups kcore sched_debug zoneinfo
1176 1479 19 256 33 515 583 66 733 cmdline keys schedstat
1190 1488 2 257 375 518 584 660 734 consoles key-users scsi
1192 1495 20 295 399 520 607 664 735 cpuinfo kmsg self
1193 15 21 296 400 521 608 684 736 crypto kpagecount slabinfo
1194 1522 22 297 407 567 614 685 745 devices kpageflags softirqs
12 1541 23 298 41 568 615 686 749 diskstats loadavg stat
13 1545 2330 299 410 569 619 687 751 dma locks swaps
1307 1548 2336 3 42 570 620 689 762 driver mdstat sys
1311 1556 239 30 43 571 6220 690 772 execdomains meminfo sysrq-trigger
1399 1565 24 300 438 572 626 691 782 fb misc sysvipc
1400 1569 240 301 45 573 6330 693 8 filesystems modules timer_list
1438 1570 241 302 469 574 6427 7 9 fs mounts timer_stats
1.ps命令:报告当前进程的快照(report a snapshot of the current processes)
1)ps [options]:三种风格选项
1.UNIX options, which may be grouped and must be preced(必须带有"-")
2.2 BSD options, which may be grouped and must not be used with a dash.(必须不带"-")
3.3 GNU long options, which are preceded by two dashes.(长选项模式)
2)进程启动的方式
1.系统启动过程中自动启动:与终端无关的进程
2.用户通过终端启动:与终端相关的进程
2.常用组合之一:aux,显示用户相关,与相关及无关的所有进程信息
1)相关选项:
1.a:所有与终端相关的进程
2.x:所有与终端无关的选项
3.u:以用户为中心组织进程状态信息显示
[root@kasumi ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.6 128164 6812 ? Ss 11:02 0:01 /usr/lib/systemd/systemd --switched-root
root 2 0.0 0.0 0 0 ? S 11:02 0:00 [kthreadd]
root 24 0.0 0.0 0 0 ? S< 11:02 0:00 [md]
root 25 0.0 0.0 0 0 ? R 11:02 0:05 [kworker/0:1]
root 30 0.0 0.0 0 0 ? S 11:02 0:00 [kswapd0]
root 31 0.0 0.0 0 0 ? SN 11:02 0:00 [ksmd]
gdm 1565 0.0 2.1 1296440 21960 ? Sl 11:02 0:00 /usr/libexec/gnome-settings-daemon
root 1569 0.0 0.2 54456 2980 ? Ss 11:02 0:00 /usr/sbin/wpa_supplicant -u -f /var/log
gdm 1565 0.0 2.1 1296440 21960 ? Sl 11:02 0:00 /usr/libexec/gnome-settings-daemon
root 1569 0.0 0.2 54456 2980 ? Ss 11:02 0:00 /usr/sbin/wpa_supplicant -u -f /var/log
"aux第一行中各名称解释"
1.USER:进程的发起者
2.PID:进程号
3.%CPU:进程使用CPU占比
4.%MEM:进程使用内存占比
5.VSZ(Virtual memory SIZE):虚拟内存集,代表了其中实际用来存储数据大小的内存
6.RSS(Resident Size):常驻内存集,代表着内存中不能放入交换内存中的部分
7.TTY:进程在哪个终端运行
8.STAT:进程目前的状态
1)R:running 运行状态
2)S:interruptable sleeping 可中断睡眠状态
3)D:uninterruptable sleeping 不可中断睡眠状态
4)T:Stopped 暂停状态
5)Z:zombie 僵死状态
6)+:前台进程
7)l:多线程进程
8)N:低优先级进程
9)<:高优先级进程
10)s:session leader 会话领导者,若关闭此种状态进程,其下的子进程都会被关闭
9.START:进程被触发的时间
10.TIME:进程实际累加使用的cpu时间
11.COMMAND:触发此进程的命令
3.常用组合之二:-ef
1)相关选项:
1.-e:显示所有进程
2.-f:显示完整格式的进程信息
[root@kasumi ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11:02 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --des
root 2 0 0 11:02 ? 00:00:00 [kthreadd]
root 3 2 0 11:02 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 11:02 ? 00:00:00 [kworker/0:0H]
root 1194 1 0 11:02 ? 00:00:00 /usr/sbin/crond -n
root 1307 1 0 11:02 ? 00:00:00 /usr/libexec/postfix/master -w
postfix 1311 1307 0 11:02 ? 00:00:00 qmgr -l -t unix -u
nobody 1399 1 0 11:02 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/
"ps -ef第一行中各名称解释"
1.UID /PID/PPID:分别代表了进程的发起者,进程号,父进程号
2.C:CPU使用率
3.STIME:进程的启动时间
4.TTY:登陆的终端位置,远程登录为pts/n,本地登录为ttyn,?表示系统进程
5.TIME:进程实际花费cpu的运行时间
6.CMD:触发此进程的命令
3.常用组合之三:-eFH
1)相关选项:
1.-F:显示完整格式的进程信息
2.-H:以层级结构显示进程的相关信息
[root@kasumi ~]# ps -eFH
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 2 0 0 0 0 0 11:02 ? 00:00:00 [kthreadd]
root 3 2 0 0 0 0 11:02 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 0 0 0 11:02 ? 00:00:00 [kworker/0:0H]
root 7 2 0 0 0 0 11:02 ? 00:00:00 [migration/0]
root 8 2 0 0 0 0 11:02 ? 00:00:00 [rcu_bh]
"ps -eFH第一行中各名称解释"
1.UID /PID/PPID:分别代表了进程的发起者,进程号,父进程号
2.C:CPU使用率
3.SZ:即VSZ,虚拟内存集
4.RSS:即常驻内存集
5.PSR:运行与哪颗CPU上
6.STIME:进程的启动时间
7.TTY:登陆的终端位置,远程登录为pts/n,本地登录为ttyn,?表示系统进程
8.TIME:进程实际花费cpu的运行时间
9.CMD:触发此进程的命令
CMD同一列代表同级进程,缩进行代表其对应的子进程
4.常用组合之四:-eo, axo
1)相关选项:
1.-o field1,field2..:自定义要显示的字段列表,以逗号分隔
[root@kasumi ~]# ps -eo pid,ni,pri,tty,comm
PID NI PRI TT COMMAND
1 0 19 ? systemd
2 0 19 ? kthreadd
3 0 19 ? ksoftirqd/0
5 -20 39 ? kworker/0:0H
7 - 139 ? migration/0
8 0 19 ? rcu_bh
9 0 19 ? rcu_sched
"常用的field"
1.pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio
1)pri(priority):优先级
2)psr:运行于哪颗CPU之上
3)pcpu:cpu占用比
4)rtprio(real time priority):实时优先级
1.pgrep(look up or signal processes based on name and other attributes):根据名称和其他属性查找进程或向进程发出信号
2.语法:pgrep [options] pattern
1)相关选项
1.-U uid:read user,仅显示以指定用户身份运行的进程
2.-u uid:effective user,显示指定用户的有效进程
3.-t TERMINAL:与指定的终端相关的进程
4.-l:显示进程名
5.-a:显示完整格式的进程名
6.-P pid:显示此进程的子进程
2)相关测试
指定用户的进程,并显示完整格式进程名
[root@kasumi ~]# pgrep -l -a -U postfix
1311 qmgr -l -t unix -u
6220 pickup -l -t unix -u
[root@kasumi ~]# ps aux | grep postfix
root 1307 0.0 0.2 91628 2208 ? Ss 11:02 0:00 /usr/libexec/postfix/master -w
postfix 1311 0.0 0.4 91908 4236 ? S 11:02 0:00 qmgr -l -t unix -u
postfix 6220 0.0 0.4 91732 4012 ? S 16:01 0:00 pickup -l -t unix -u
root 7374 0.0 0.0 112680 984 pts/0 S+ 17:34 0:00 grep --color=auto postfix
显示指定进程的子进程
[root@kasumi ~]# ps aux | grep sshd
root 1176 0.0 0.4 105996 4084 ? Ss 11:02 0:00 /usr/sbin/sshd -D
root 1704 0.0 0.5 147788 5228 ? Ss 11:08 0:00 sshd: root@pts/0
root 2330 0.0 0.5 147788 5224 ? Ss 11:26 0:00 sshd: root@pts/1
root 7528 0.0 0.0 112680 984 pts/0 S+ 17:43 0:00 grep --color=auto sshd
[root@kasumi ~]# pgrep -P 2330
2336
[root@kasumi ~]# ps aux | grep 2336
root 2336 0.0 0.3 116704 3544 pts/1 Ss+ 11:26 0:00 -bash
root 7531 0.0 0.0 112676 984 pts/0 S+ 17:44 0:00 grep --color=auto 2336
查找指定模式的PID
[root@kasumi ~]# pgrep sshd
1176
1704
2330
1.pidof:根据进程名,取其pid
[root@kasumi ~]# pidof sshd
2330 1704 1176
1.top命令:- display Linux processes,动态显示进程状态
[root@kasumi ~]# top
top - 17:49:18 up 6:47, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 163 total, 1 running, 162 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 999720 total, 215432 free, 328144 used, 456144 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 450316 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 128164 6812 4052 S 0.0 0.7 0:01.45 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.03 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
2.top命令中个各行信息
1.第一行信息:
1)17:49:18 :当前系统时间
2)up 6:47:系统启动到现在所经过的时间
3)2 users:当前已登录系统的用户数
4)load average: 0.00, 0.01, 0.05 系统在1,5,15分钟的平均负载,其值越小表示系统越空闲,若高于1,需要注意是否负载过高
2.第二行信息:
1)Tasks: 163 total 目前系统进程的总量
2)需注意若zombie若不为0,则需要查看是否有处于僵死状态的进程
3.第三行信息
1)显示的为cpu的整体负载
2)若有多核心的cpu,可以使用数字键1来切换查看不同cpu的负债率
3)0.0 us:user space用户运行程序的CPU占比
4)0.2 sy:system(kernel space)内核空间进程CPU占比
5)0.0 ni:nice值,用户空间所改变过优先级的进程所占用的CPU百分比
6)99.8 id:idleCPU空闲占比
7)0.0 wa:wait io 等待I/O花费的时间,若过大可能为磁盘读写效率问题
8)0.0 hi:hardware interrupt,用于硬件中断的CPU占比
9)0.0 si:software interrupt,用于软件中断的CPU占比
10)0.0 st:被虚拟机"偷走"的CPU占比
4.第四行信息:表示物理内存的使用情况
5.第五行信息:表示交换分区的使用情况
6.第六行信息:默认显示为空白信息,若在top进程中输入命令时,显示状态的位置,可输入的命令为:
1)P:已CPU占比排序
2)M:已内存占比排序
3)T:以累积CPU占用时间排序
4)l:是否显示系统负载行
5)t:是否显示进程摘要信息及CPU负载状态
6)m:是否显示内存相关的状态信息
7)1:数字1,平均或单独显示CPU的的敷在状态
8)q:退出命令
9)s:修改更新速率
10)k:终止指定进程
7.第七行信息
1)PID:进程号
2)USER:进程所属的使用者
3)PR:priority,进程优先级,越小级别越高
4)Ni:nice值,与优先级有关,越小越先被执行
5)VIRT:进程需要的虚拟内存大小,而非使用的虚拟内存大小
6)RES:进程当前使用的内存大小,不包括swap
7)SHR:进程与其他进程的共享内存大小,若使用RES-SHR即为进程实际使用的物理内存大小
8)S:进程的状态
9)%CPU:CPU的使用率
10)%MEM:内存的使用率
11)TIME+:使用COU时间的累积
12)COMMAND:启动进程的命令
ps:第一行信息可使用uptime命令显示,显示系统时间,系统已运行时间及平均负载。1,5,15分钟的平均负载,平均负载为等待运行的进程队列的长度。
[root@kasumi ~]# uptime
18:55:22 up 7:53, 2 users, load average: 0.00, 0.01, 0.05
3.top选项
1)-d #:指定刷新时间间隔,默认为3秒
2)-b:以批次方式显示
3)-n #:显示多少批次