本章Blog相关Linux知识点
进程(process):进程是程序的执行实例,即运行中的程序,也是程序的副本;程序放置于磁盘中,而进程放置于内存中;进程的启动及调度均是由内核发起的。init是所有进程的父进程,而子进程是由fork()进程生成。
线程(Thread):一个进程至少包括一个线程,通常将该线程称为主线程,所以线程是比进程更小的单位,是系统分配处理器时间资源的基本单元。一个进程要想同时在多颗CPU上运行,必须得分成互不影响的多个执行流,而后每组单独在各自所分配的CPU上运行,这种分化后的执行流且有着比进程更小资源分配单位称之为线程。
程序(Program):程序只是一个普通文件,是一个机器代码指令和数据的集合,这些指令和数据存储在磁盘上的一个可执行映象(Executable Image)中,所以,程序是一个静态的实体。
进程优先级0-139 :
实时优先级:0-99 ,数字越大,优先级越高
静态优先级:100-139,数字越小,优先级越高
进程nice值:
指静态优先级,降低优先级
取值范围:-20—19;-20对用100,19对用139
进程类型:守护进程、用户进程
守护进程:系统启动时运行的进程,类似windows上的开机进程(开机任务),跟终端无关
用户进程:用户通过终端启动的进程,也可以叫前台进程,需要注意的是,也可以把前台进程送往后台,以守护模式运行。
进程状态:
运行态:running ,正在运行的进程就是当前进程(由current所指向的进程),而准备运行的进程只要得到CPU就可以立即投入运行,CPU是这些进程唯一等待的系统资源。系统中有一个运行队列(run_queue),用来容纳所有处于可运行状态的进程,调度程序执行时,从中选择一个进程投入运行。
等待态:waiting,处于该状态的进程正在等待某个事件(event)或某个资源,它肯定位于系统中的某个等待队列(wait_queue)中。Linux中处于等待状态的进程分为两种:可中断的等待状态和不可中断的等待状态。处于可中断等待态的进程可以被信号唤醒,如果收到信号,该进程就从等待状态进入可运行状态,并且加入到运行队列中,等待被调度;而处于不可中断等待态的进程是因为硬件环境不能满足而等待。
睡眠态:sleeping,可中断睡眠(interruptable)、不可中断睡眠(uninterruptable)
停止态:stop ,不会被调度 stopped ,此时的进程暂时停止运行来接受某种特殊处理。通常当进程接收到SIGSTOP、SIGTSTP、SIGTTIN或 SIGTTOU信号后就处于这种状态。例如,正接受调试的进程就处于这种状态。
僵死态:zombie,系统调用,终止进程的信息也还没有回收。顾名思义,处于该状态的进程就是死进程,这种进程实际上是系统中的垃圾,必须进行相应处理以释放其占用的资源。
linux运行终端:通过命令 #tty 查看
串行终端,串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备,通常使用/dev/ttys/#表示
物理终端,如/dev/console
虚拟终端,Linux中提供的虚拟终端默认有6个,其中第1个是图形界面,第2到6个则是字符界面。可以通过Ctrl+Alt+F(1~6)组合键在不同的虚拟终端之间进行切换,Ctrl+Alt+F7启动图形界面(先启动图形功能#startx) ,如/dev/tty/#
伪终端(模拟终端),我们通常都是通过网络远程对Linux服务器进行管理,这种通过远程登录方式所打开的终端称为伪终端(pts)。比如我们通过Xshell远程登录到Linux系统,如:/dev/pts/1
特殊命令组合功能:
Ctrl +c 取消当前程序
Shift +Pageup/Pagedown 翻屏查看命令界面之前的数
进程管理命令:pstree,ps,pgrep,top,htop,vmstat,dstat
# pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-Z] [-A|-G|-U] [pid|user] 查看进程树命令
pstree -V
-a 显示进程详细信息
-p 显示进程及进程号
[root@PXE ~]# pstree -a init ├─crond ├─dbus-daemon --system ├─dhcpd -user dhcpd -group dhcpd ├─hald │ ├─hald-runner │ │ ├─hald-addon-acpi │ │ └─hald-addon-inpu │ └─{hald} ├─ntpd -u ntp:ntp -p /var/run/ntpd.pid -g ├─sshd │ ├─sshd │ │ └─bash │ └─sshd │ └─bash │ └─pstree -a ├─udevd -d │ ├─udevd -d │ └─udevd -d └─xinetd -stayalive -pidfile /var/run/xinetd.pid [root@PXE ~]# pstree -p init(1)─┬─crond(1212) ├─dbus-daemon(1064) ├─dhcpd(1202) ├─hald(1096)─┬─hald-runner(1097)─┬─hald-addon-acpi(1141) │ │ └─hald-addon-inpu(1129) │ └─{hald}(1098) ├─ntpd(1186) ├─sshd(1165)─┬─sshd(1249)───bash(1254) │ └─sshd(5379)───bash(5384)───pstree(5508) ├─udevd(415)─┬─udevd(1247) │ └─udevd(1248) └─xinetd(1177)
# ps [options] :显示当前进程状态
a 显示所有与终端相关的进程
x 显示所有与终端无关的进程
u 显示所有的用户
-H:显示进程的层次信息
-F:显示额外信息
-o :要显示的字段,自定义显示格式 例# ps -axo PID,COMMAND
常用选项
aux 显示所有进程的所有信息
-ef 显示所有进程的所有信息
-eHF 显示所有进程的额外信息及进程层次关系
[root@PXE ~]# ps au USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1232 0.0 0.0 4064 544 tty1 Ss+ 18:53 0:00 /sbin/mingetty /dev/tty1 root 1234 0.0 0.0 4064 544 tty2 Ss+ 18:53 0:00 /sbin/mingetty /dev/tty2 [root@PXE ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19364 1560 ? Ss 18:52 0:01 /sbin/init root 5566 0.0 0.0 110252 1136 pts/1 R+ 22:22 0:00 ps aux #各选项涵义: USER:显示运行此进程的用户 PID: 进程ID号 %CPU:当前进程运行时长占据总CPU时长的百分比 %MEM:当前进程使用内存占据总内存的百分比 VSZ: 虚拟内存集,即当前进程使用的内存加上共享库大小 RSS: 常驻内存集,当前进程常驻内存的大小,即不能被交换出去的空间大小 TTY: 当前进程所关联的终端 STAT:进程状态 S:睡眠 D:不可中断睡眠(crond守护进程) R:运行 T:停止 Z:僵死 s:session leader(会话领导者) l:多线程进程 +:前台进程 N:低优先级进程 <:高优先级进程 START:进程启动时间 TIME: 当前进程真正占据CPU的时间,而不是挂表时钟 COMMAND:当前进程是由哪个命令发起的 [root@PXE ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 18:52 ? 00:00:01 /sbin/init root 2 0 0 18:52 ? 00:00:00 [kthreadd] root 3 2 0 18:52 ? 00:00:00 [migration/0] [root@PXE ~]# ps -eHF F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD 4 S root 1 0 0 80 0 - 4841 poll_s 1560 1 18:52 ? 00:00:01 /sbin/init 1 S root 2 0 0 80 0 - 0 kthrea 0 0 18:52 ? 00:00:00 [kthreadd] 1 S root 3 2 0 -40 - - 0 migrat 0 0 18:52 ? 00:00:00 [migration/0] [root@PXE ~]# ps axo user,pid,command # 显示指定的字段 user,pid,command USER PID COMMAND root 1 /sbin/init root 2 [kthreadd] root 3 [migration/0] #各选项涵义: F:当前进程的标志位(flags),4为管理员 S:当前进程的状态 PID:当前进程ID号 PPID:父进程ID号 C:使用时间占据CPU百分比 PRI:当前优先级 NI:当前进程的nice值 ADDR:kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-" SZ:使用掉内存大小 WCHAN:当前程序是否在运行中,"-"表示running RSS:常驻内存集 PSR:当前进程被分配给哪个处理器 STIME:当前进程启动时间 TTY:当前进程所关联的终端 TIME:累计在CPU上运行的时间 COMMAND:当前进程是由哪个命令发起的
# pgrep [-flvx] [-d delimiter] [-n|-o] [-P ppid,...] [-g pgrp,...] 只显示符合条件的进程号 例: # pgrep bash 显示bash进程的进程号
[-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
[-t term,...] [pattern]
-f:仅显示与进程匹配的名字
-o:仅显示找到的最小(起始)进程号
-n:仅显示找到的最大(结束)进程号
-l:显示进程名称与进程pid
-P:指定父进程号
-g:指定进程组
-t:指定开启进程的终端
-u:指定进程的有效用户ID
[root@PXE ~]# pgrep bash # 显示bash进程的进程号 1254 5384 [root@PXE ~]# pgrep named # 显示named进程的进程号 1297 [root@PXE ~]# pgrep -u named # 显示用户为named的进程号 1297 [root@PXE ~]# pgrep -l ntpd # 显示进程名称与进程pid 2230 ntpd
# pidof [-s] [-c] [-x] [-o omitpid] [-o omitpid..] program [program..] 显示运行程序的进程ID
[root@PXE ~]# pidof sshd # 查找sshd进程的id号 1371 1244 1166 [root@PXE ~]# pidof -s sshd # 查找sshd进程的id号,但只显示一个 1371
# top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] 查看系统进程
-d #:指定延迟时长,单位是秒
-b:以批处理模式操作
-n #:在批模式下,共显示多少批
-p pid:显示进程号为pid的进程
top 命令下交互命令,下列按键代表不同的功能:
M:按内存占用百分比排序
P :按cpu占用百分比排序
T :按照累积占用cpu时间长度排序
1键 是否显示各个cpu信息,输入1键关闭多个cpu显示,在输入1键又打开多个cpu显示,如此循环
m键 是否显示内存信息,输入m键关闭内存信息显示,在输入m键又打开内存信息显示,如此循环
t键 是否显示cpu和进程的统计信息,输入t键关闭cpu和进程的统计信息,在输入t键又打开cpu和进程的统计信息,如此循环
l键 是否显示负载信息,输入l键关闭负载信息,在输入l键又打开负载信息,如此循环
s键 输入时间,调整top刷新时间间隔
k键 输入进程id,中止某一个进程
q键 退出top命令界面
[root@PXE ~]# top -d 10 -p 1 #显示pid为1的进程且10s刷新一次 top - 23:02:22 up 4:09, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1941304k total, 506252k used, 1435052k free, 40000k buffers Swap: 4194300k total, 0k used, 4194300k free, 300940k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19364 1560 1248 S 0.0 0.1 0:01.41 init [root@PXE ~]# top -b -d 3 -n 2 #3秒刷新一次,批次显示,显示2批次后退出top top - 23:27:46 up 4:34, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1941304k total, 506540k used, 1434764k free, 40036k buffers Swap: 4194300k total, 0k used, 4194300k free, 300948k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19364 1560 1248 S 0.0 0.1 0:01.41 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.01 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0 #各选项涵义: top - 23:27:06(当前时间) up 4:34(系统运行时长), 1 users(用户数), load average: 0.00, 0.00, 0.00 (等待运行的队列长度,平均负载,1分钟,5分钟和15分钟) Tasks: 106 total(总进程数), 1 running(运行), 105 sleeping(睡眠), 0 stopped(停止), 0 zombie(僵死) Cpu(s): 0.0%us(userspace用户空间占用百分比), 0.0%sy(system), 0.0%ni(被nice值调整的), 99.7%id(idle空闲 ), 0.0%wa(wait等待), 0.0%hi(hardware 硬中断占据时间), 0.0%si(软中断), 0.0%st (被偷走的) Mem: 1941304k total(总内存大小), 506540k used(使用内存), 1434764k free(空闲内存), 40036k buffers(buffer内存) Swap: 4194300k total(总swap内存大小), 0k used, 4194300k free, 300948k cached (缓存大小) PID:进程id号 USER:进程所有者的用户名 PR:进程优先级 NI:nice值 VIRT:进程使用的虚拟内存总量 RES:进程使用的、未被换出的物理内存大小 SHR:共享内存大小 S:进程状态,包括R运行,S睡眠,T停止,D不可中断进程,Z僵死进程 %CPU:上次更新到现在的CPU时间占用百分比 %MEM:进程使用的物理内存百分比 TIME+:进程使用的CPU时间总计
# htop [-dChusv] 查看系统进程,为top功能的升级版
-d:设置刷新时间,单位为秒;
-C:设置界面为无颜色;
-u:显示指定用户的进程;
-s:对指定列进行排序显示;
F1:显示帮助信息;
U:取消所有选中的进程;
s:显示光标所在进程执行的系统调用;
l:显示光标所在进程的文件列表;
a:绑定进程到指定的CPU;
u:显示指定用户的进程;
M:按照内存使用百分比排序,对应MEM%列;
P:按照CPU使用百分比排序,对应CPU%列;
T:按照进程运行的时间排序,对应TIME+列;
K:隐藏内核线程;
H:隐藏用户线程;
#:快速定位光标到PID所指定的进程上。
# vmstat [-a] [-n] [-t] [-S unit] [delay [ count]] 显示虚拟内存信息
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]vmstat [-V]
例:#vmastat 1 3 每个1秒钟并显示3次
-s 显示内存统计信息
-d 显示磁盘统计信息
[root@PXE ~]# vmstat -a procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 1465856 41000 306400 0 0 6 2 7 9 0 0 100 0 0 [root@PXE ~]# vmstat -d #显示硬盘统计信息 disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec sda 14325 4702 680386 75203 3061 30380 267544 44943 0 69 dm-0 12436 0 374954 119300 18277 0 146216 235270 0 50 dm-1 1352 0 15826 16179 54 0 432 94 0 1 dm-2 3929 0 278258 20775 15101 0 120808 3140282 0 17 dm-3 197 0 1570 656 3 0 24 2 0 0 [root@PXE ~]# vmstat -s #显示内存统计信息 1941304 total memory 475448 used memory 217052 active memory 143012 inactive memory #各选项涵义: FIELD DESCRIPTION FOR VM MODE Procs r: The number of processes waiting for run time. b: The number of processes in uninterruptible sleep. Memory swpd: the amount of virtual memory used. free: the amount of idle memory. buff: the amount of memory used as buffers. cache: the amount of memory used as cache. inact: the amount of inactive memory. (-a option) active: the amount of active memory. (-a option) Swap si: Amount of memory swapped in from disk (/s). so: Amount of memory swapped to disk (/s). IO bi: Blocks received from a block device (blocks/s). bo: Blocks sent to a block device (blocks/s). System in: The number of interrupts per second, including the clock. cs: The number of context switches per second. CPU These are percentages of total CPU time. us: Time spent running non-kernel code. (user time, including nice time) sy: Time spent running kernel code. (system time) id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time. wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle. st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown. FIELD DESCRIPTION FOR DISK MODE Reads total: Total reads completed successfully merged: grouped reads (resulting in one I/O) sectors: Sectors read successfully ms: milliseconds spent reading Writes total: Total writes completed successfully merged: grouped writes (resulting in one I/O) sectors: Sectors written successfully ms: milliseconds spent writing IO cur: I/O in progress s: seconds spent for I/O
# dstat [-afv] [options..] [delay [count]] dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能工具,是一个全能系统信息统计工具
-a :相当于-cdngy
-l :显示负载统计量
-m :显示内存使用率(包括used,buffer,cache,free值)
-r :显示I/O统计
-s :显示交换分区使用情况
-t :将当前时间显示在第一行
–fs :显示文件系统统计数据(包括文件总数量和inodes值)
–nocolor :不显示颜色(有时候有用)
–socket :显示网络统计数据
-–tcp :显示常用的TCP统计
-–udp :显示监听的UDP接口及其当前用量的一些动态数据
-–disk-util :显示某一时间磁盘的忙碌状况
-–freespace :显示当前磁盘空间使用率
-–proc-count :显示正在运行的程序数量
-–top-bio :指出块I/O最大的进程
-–top-cpu :图形化显示CPU占用最大的进程
-–top-io :显示正常I/O最大的进程
-–top-mem :显示占用最多内存的进程
# kill [-s signal|-p] [--] pid... 用于实现向其他进程发送信息
kill -l 显示可用的信号
常用格式:
# kill -n 进程id , 例:#kill -9 36901
# kill -SIG[name] 进程id , 例: # kill -SIGKILL 36901
# kill -[name] 进程id , 例:# kill -KILL 36901
#注:
1信号SIGHUP:通知程序重读配置文件,而不用重启程序,相当于reload
2信号SIGINT:相当于Ctrl+c功能,结束运行的任务
9信号SIGKILL:杀死进程
15信号SIGTERM:终止进程 ,默认信号为15
[root@PXE ~]# ps aux | grep ntpd ntp 5904 0.0 0.1 30744 2152 ? Ss 08:37 0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g root 7161 0.0 0.0 103276 848 pts/1 S+ 14:52 0:00 grep ntpd [root@PXE ~]# kill -9 5904 # 通过数字信号强制终止ntp 进程 [root@PXE ~]# ps aux | grep dhcpd dhcpd 1202 0.0 0.2 48208 4084 ? Ss 02:21 0:00 /usr/sbin/dhcpd -user dhcpd -group dhcpd root 7165 0.0 0.0 103272 840 pts/1 S+ 14:59 0:00 grep dhcpd [root@PXE ~]# kill -KILL 1202 # 通过信号名称强制终止ntp 进程 [root@PXE ~]# ps aux | grep xinetd root 1177 0.0 0.0 21716 988 ? Ss 02:21 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid root 7183 0.0 0.0 103272 840 pts/1 S+ 15:02 0:00 grep xinetd [root@PXE ~]# kill -SIGKILL 1177 # 通过信号全名强制终止ntp 进程
# pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...]
# 基于名称或其它属性来查找进程,性能与killall类似
[-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
[-t term,...] [pattern]
# killall [-Z,--context pattern] [-e,--exact] [-g,--process-group] [-i,--interactive] [-q,--quiet] [-r,--regexp] 通过名字杀死某些进程
[-s,--signal signal] [-u,--user user] [-v,--verbose] [-w,--wait] [-I,--ignore-case] [-V,--version] [--] name ...
killall -l
# killall -SIGNAL name 杀死name应用
[root@PXE ~]# ps aux | grep named named 1308 0.0 0.7 216872 15280 ? Ssl 17:07 0:00 named -u named root 1696 0.0 0.0 103276 844 pts/0 S+ 18:03 0:00 grep named [root@PXE ~]# pkill named #结束named进程 [root@PXE ~]# ps aux | grep named root 1700 0.0 0.0 103272 844 pts/0 S+ 18:03 0:00 grep named [root@PXE ~]# ps aux | grep dhcpd dhcpd 1203 0.0 0.1 48208 3588 ? Ss 16:53 0:00 /usr/sbin/dhcpd -user dhcpd -group dhcpd root 1707 0.0 0.0 103276 848 pts/0 S+ 18:05 0:00 grep dhcpd [root@PXE ~]# killall dhcpd #结束dhcpd程序进程 [root@PXE ~]# ps aux | grep dhcpd root 1710 0.0 0.0 103272 844 pts/0 S+ 18:07 0:00 grep dhcpd
Linux的作业控制及nice值调整
Linux作业控制:
前台作业:占据着一个终端
后台作业:作业执行时不占据终端,作业启动后就释放终端、
非守护进程类的程序,启动以后都在前台工作
如果已经启动:前台-->后台。ctrl+z把前台作业送往后台,作业被”停止“
如果尚未启动:# COMMAND &
退出当前会话,作业也会终止,因为作业与当前终端相关,如果把作业送往后台后,不期望作业随终止结束而停止
# nohup COMMAND &
如何让送往后台的作业继续执行:
# fg [%]作业号码:将作业调回前台继续进行
# bg [%]作业号码:让作业在调整为优先启动
终止作业:默认的为最后一个进入后台的任务
# kill %作业号码:终止作业
查看作业号:
# jobs
[root@PXE ~]# top & #把作业送往后台 [1] 1907 [root@PXE ~]# vi /etc/init.d/xinetd # 使用 crtl +z 把进程由前台转为后台 ^Z [2]+ Stopped vim /etc/init.d/xinetd [root@PXE ~]# find /var -print ^Z [root@PXE ~]# jobs [1] Stopped top [2]- Stopped vim /etc/init.d/xinetd [3]+ Stopped find /var -print [root@PXE ~]# bg %2 #把2号后台任务调为优先启动 [2] vim /etc/init.d/xinetd & [root@PXE ~]# jobs [1]- Stopped top [2]+ Stopped vim /etc/init.d/xinetd [3] Stopped find /var -print [root@www ~]# fg # 默认取出那个 + 的工作,亦即 [2]。 [root@PXE ~]# fg %1 top top - 20:08:11 up 3:15, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 100 total, 1 running, 98 sleeping, 1 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.8%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1941304k total, 313784k used, 1627520k free, 60920k buffers Swap: 4194300k total, 0k used, 4194300k free, 145412k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19364 1556 1248 S 0.0 0.1 0:01.08 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.09 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.31 migration/1 [root@www ~]# jobs #查看作业号 [3]+ Stopped find /var -print [root@PXE ~]# kill %3 #终止3号作业 [3]+ Stopped find /var -print [root@PXE ~]# jobs [3]+ Terminated find /var -print [root@PXE ~]# jobs # 3号作业已终止 [root@PXE ~]# nohup top & #把进程调入后台执行 [1] 2426
#
renice
[-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
调整运行中进程的优先级
renice
-h | -
v
# nice
[OPTION] [COMMAND [ARG]...] 以预先定义的nice优先级启动进程
[root@PXE ~]# ps axo ni,pid,command | grep bash # 只显示pid,nice值以及command 0 1967 -bash 0 2041 -bash 0 2091 grep bash [root@PXE ~]# renice -5 2041 # 调整nice值为-10 2041: old priority 0, new priority -5 [root@PXE ~]# ps axo ni,pid,command | grep bash # 2041进程nice值变为了-5 0 1967 -bash -5 2041 -bash -5 2096 grep bash [root@PXE ~]# nice -n 1 ntpd #对于未启用的ntp进程调整nice值,增加1 [root@PXE ~]# ntpd [root@PXE ~]# ps axo pid,ni,command | grep ntpd #查看ntp进程nice值 ,变为-4 2230 -4 ntpd 2247 -5 grep ntpd
本章blog知识点汇总
# pstree [-a|-p] 查看进程树命令
# ps aux 查看当前进程状态
# ps ef 显示所有进程的所有信息
# ps axo pid,ni,command 只显示进程的pid,nice值,command
# pgrep pattern 只显示符合pattern的进程
# pidof pattern 显示运行程序的进程ID
# top 查看系统进程
# top -d delay -n iterations -p pid [, pid ...] 查看系统进程
# htop 查看系统进程,为top功能的升级版
# vmstat [delay [ count]] 显示虚拟内存信息
# dstat [delay [count]] dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能工具,是一个全能系统信息统计工具
# kill [-s signal|-p] [--] pid... 用于实现向其他进程发送信息
# pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...]
# 基于名称或其它属性来查找进程,性能与killall类似
# killall -SIGNAL name 杀死name应用
# COMMAND & 把作业送往后台
# fg [%]作业号码:将作业调回前台继续进行
# bg [%]作业号码:让作业在后台调整为优先执行
# kill %作业号码:终止作业
# jobs 查看作业号
#
renice
[-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
调整运行中进程的优先级
# nice
[OPTION] [COMMAND [ARG]...] #以预先的优先级启动进程