Linux运维基础进程管理及环境组成分析
目录
- 1.进程基本概述
- 2.进程的组成部分
- 3.进程的环境
- 4.进程状态
- 5.进程优先级
- 6.进程管理命令
- 7.vmstat
- 8.后台运行作业
1.进程基本概述
进程是已启动的可执行程序的运行中实例。
/proc目录下以数字为名的目录,每一个目录代表一个进程,保存着进程的属性信息。
每一个进程的PID是唯一的,就算进程退出了,其它进程也不会占用其PID
2.进程的组成部分
- 已分配内存的地址空间
- 安全属性,包括所有权凭据和特权
- 程序代码的一个或多个执行线程
- 进程状态
3.进程的环境
- 本地和全局变量
- 当前调度上下文
- 分配的系统资源,如文件描述符和网络端口
4.进程状态
5.进程优先级
- <0-139>:数字越小,优先级越高!
- <0-99>:实时优先级,内核调整
- <100-139>:静态优先级,用户可控制
6.进程管理命令
ps
命令用于列出当前的进程。可以显示详细的进程信息
[root@localhost ~]# ps -e PID TTY TIME CMD 1 ? 00:00:02 systemd 2 ? 00:00:00 kthreadd
[root@localhost ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 179032 13504 ? Ss Nov03 0:02 /usr/lib/syst root 2 0.0 0.0 0 0 ? S Nov03 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< Nov03 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< Nov03 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< Nov03 0:00 [kworker/0:0H root 8 0.0 0.0 0 0 ? I< Nov03 0:00 [mm_percpu_wq root 9 0.0 0.0 0 0 ? S Nov03 0:00 [ksoftirqd/0] root 10 0.0 0.0 0 0 ? R Nov03 0:00 [rcu_sched] root 11 0.0 0.0 0 0 ? S Nov03 0:00 [migration/0] root 12 0.0 0.0 0 0 ? S Nov03 0:00 [watchdog/0] root 13 0.0 0.0 0 0 ? S Nov03 0:00 [cpuhp/0] root 15 0.0 0.0 0 0 ? S Nov03 0:00 [kdevtmpfs] root 16 0.0 0.0 0 0 ? I< Nov03 0:00 [netns] root 17 0.0 0.0 0 0 ? S Nov03 0:00 [kauditd] root 18 0.0 0.0 0 0 ? S Nov03 0:00 [khungtaskd] root 19 0.0 0.0 0 0 ? S Nov03 0:00 [oom_reaper] root 20 0.0 0.0 0 0 ? I< Nov03 0:00 [writeback] root 21 0.0 0.0 0 0 ? S Nov03 0:00 [kcompactd0] root 22 0.0 0.0 0 0 ? SN Nov03 0:00 [ksmd] root 23 0.0 0.0 0 0 ? SN Nov03 0:00 [khugepaged] root 24 0.0 0.0 0 0 ? I< Nov03 0:00 [crypto] root 25 0.0 0.0 0 0 ? I< Nov03 0:00 [kintegrityd] root 26 0.0 0.0 0 0 ? I< Nov03 0:00 [kblockd] root 27 0.0 0.0 0 0 ? I< Nov03 0:00 [tpm_dev_wq] root 28 0.0 0.0 0 0 ? I< Nov03 0:00 [md] root 29 0.0 0.0 0 0 ? I< Nov03 0:00 [edac-poller] root 30 0.0 0.0 0 0 ? S Nov03 0:00 [watchdogd] root 47 0.0 0.0 0 0 ? S Nov03 0:00 [kswapd0] root 140 0.0 0.0 0 0 ? I< Nov03 0:00 [kthrotld] root 141 0.0 0.0 0 0 ? S Nov03 0:00 [irq/24-pcieh root 142 0.0 0.0 0 0 ? S Nov03 0:00 [irq/25-pcieh root 143 0.0 0.0 0 0 ? S Nov03 0:00 [irq/26-pcieh root 144 0.0 0.0 0 0 ? S Nov03 0:00 [irq/27-pcieh root 145 0.0 0.0 0 0 ? S Nov03
[root@localhost ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 Nov03 ? 00:00:02 /usr/lib/systemd/systemd --s root 2 0 0 Nov03 ? 00:00:00 [kthreadd] root 3 2 0 Nov03 ? 00:00:00 [rcu_gp] root 4 2 0 Nov03 ? 00:00:00 [rcu_par_gp] root 6 2 0 Nov03 ? 00:00:00 [kworker/0:0H-k
7.vmstat
虚拟内存状态查看命令
vmstat 1000 //表示每1000秒刷新一次
vmstat 1000 5 //表示每1000秒刷新一次,刷新5次后退出
[root@localhost ~]# vmstat 1000 procs: r(running) //表示等待运行的队列长度,也即等待运行的进程的个数 b(block) //表示阻塞队列长度,也即处于不可中断睡眠态的进程个数 memory: swpd //交换内存的使用总量 free //空闲物理内存总量 buffer //用于buffer的内存总量 cache //用于cache的内存总量 swap: si(swap in) //表示从物理内存有多少页面换进swap,也即数据进入swap的数据速率(kb/s) so(swap out) //表示从swap有多少页面换进物理内存,也即数据离开swap的数据速率(kb/s) io: bi(block in) //表示磁盘块有多少个被调入内存中,也即从块设备读入数据到系统的速率(kb/s) bo(block out) //表示有多少个磁盘块从内存中被同步到硬盘上去了,也即保存数据至块设备的速率(kb/s) system: in( interrupts) //表示中断的个数,也即中断速率(kb/s) cs(context switch) //表示上下文切换的次数,也即进程切换速率(kb/s) CPU: us //表示用户空间 sy //表示内核空间 id //表示空闲百分比 wa //表示等待IO完成所占据的时间百分比 st //表示steal,被虚拟化技术偷走的时间(比如运行虚拟机)
8.后台运行作业
//在命令后跟上&符号可以生成一个后台作业 [root@localhost ~]# sleep 1000 & [1] 1400 //jobs命令用于显示当前所有的后台作业 [root@localhost ~]# jobs [1]+ Running sleep 1000 & //fg命令用于将后台作业调至前台运行 [root@localhost ~]# 【文章来源:http://www.1234xp.com/mggfzq.html网络转载请说明出处】fg //当只有一个后台作业时,直接使用fg命令,不跟任何参数即可将后台作业调至前台运行,但是当有多个作业时则必须跟上%+作业号,也就是上面命令执行结果中以[]括起来的数字。 [root@localhost ~]# jobs [1]- Running sleep 1000 & [2]+ Running sleep 500 & [root@localhost ~]# fg %1 //使用ctrl+z可将前台进程发送到后台,此时作业将处于停止状态 [root@localhost ~]# fg %1 sleep 1000 ^Z [1]+ Stopped sleep 1000 //使用bg命令+作业号可使后台已停止的作业重新运行 [root@localhost ~]# bg %1 [1]+ sleep 1000 & [root@localhost ~]# jobs [1]- Running sleep 1000 & [2]+ Running sleep 500 & //kill加上作业号可以手动杀死指定作业 [root@localhost ~]# jobs [1]- Running sleep 1000 & [2]+ Running sleep 500 & [root@localhost ~]# kill %1 [1]- Terminated sleep 1000 [root@localhost ~]# jobs [2]+ Running sleep 500 & //jobs命令的结果中 + //命令将默认操作的作业 - //命令将第二个默认操作的作业
以上就是Linux运维基础进程管理及环境组成分析的详细内容,更多关于Linux进程管理及环境组成的资料请关注海外IDC网其它相关文章!