linux进程管理

Linux内核:抢占式多任务

进程类型:

1、守护进程:在系统引导过程中启动的进程,与终端无关的进程;

2、前台进程:跟终端相关,通过终端启动的进程,注意:也可把前台启动的进程送往后台,以守护模式运行;

 

进程状态:

运行态:running

就绪态:ready

睡眠态:a、可中断:interruptable;b、不可中断:uninterruptable

停止态:暂停于内存中,但不会被调度,除非手动启动之:stopped

僵死态:zombie

 

进程分类:

1、CPU-Bound:CPU密集型

2、IO-Bound:IO密集型

 

Linux进程查看及管理工具:pstree、ps、pgrep、pidof、top、htop、glance、pmap、vmstat、dstat、kill、pkill、job、bg、fg、nohup;

 

pstree – display a tree of processes;以树状显示进程

 

ps:显示进程状态

ps [options]…

选项:支持两种风格

常用组合:aux

u:以用户为中心组织进程状态信息显示

a:与终端相关的进程

x:与终端无关的进程

# ps uax
USER       PID      %CPU     %MEM     VSZ       RSS     TTY        STAT      START         TIME       COMMAND

VSZ:virtual memory size;虚拟内存集

RSS:resident size;常驻内存集,即不能被交换至交换分区的

STAT:进程状态

R:running

S:interruptable sleeping

D:uninterruptable sleeping

T:stopped

Z:zombie

+:前台进程

l:多线程进程

N:低优先级进程

<:高优先级进程

s:session leader

 

常用组合:-ef

-e:显示所有进程相当于ps ax;

-f:显示完整格式的进程信息;

常用组合:-eFH

-F:显示更完整格式的进程信息;

-H:以进程层级格式显示进程相关信息

常用组合:-eo,axo

-o:以自定义指定字段显示

-eo      pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
axo     stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ni:nice值;

pri:优先级;

psr:运行于哪颗cpu;

rtprio:实时优先级;

ppid:父进程;

 

pgrep,pkill:

pgrep   [options]   pattern
pkill   [options]   pattern

-U uid:真实用户

-u uid:有效用户

-t terminal:与指定终端相关的进程

-l:显示进程名

-a:显示完整格式的进程名

-P pid:显示其父进程为此处指定进程的进程列表

 

pidof:根据进程名获取其pid

 

top:有许多内置命令:

排序:P:占据CPU时间百分比;

M:占据的内存百分比;

T:累计占据cpu时长;

首部信息显示:

l:uptime信息;

t:任务及cpu信息;

1:cpu分别显示;

m:内存信息;

q:退出命令;

s:修改刷新时间间隔;

k:kill,终止指定进程

其中cpu信息中各子项的意义:

us:用户空间

sy:内核空间

ni:nice值

id:空闲比例

wa:等待io完成

hi:处理硬件中断

si:处理软件中断

st:被虚拟化技术偷走的时间

 

htop命令:

s:跟踪选定进程的系统调用;

l:显示选定进程打开的文件列表;

a:将选定进程绑定至某指定cpu核心;

t:显示进程树;

 

vmstat:报告虚拟内存的使用信息

vmstat [options] [delay [count]]

procs     {r:等待运行的进程的个数;

b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度);}

memory   {swpd:交换内存的使用总量;

free:空闲物理内存总量;

buff:用于buff的内存总量;

cache:用于cache的内存总量}

 

swap   {si:数据进入swap中的数据速率(kb/s)

so:数据离开swap中的数据速率(kb/s)}

 

io   {bi:从块设备读入数据到系统的速率(kb/s)

bo:保存数据至块设备的速率(kb/s)}

 

system   {in:中断速率

cs:进程切换的速率}

 

cpu   {us:用户空间

sy:内核空间

id:空闲比例

wa:等待io完成所消耗的时间比例

st:被虚拟化技术偷走的时间比例}

 

选项:

-s:显示内存的统计数据

 

pmap – report memory map of a process:显示指定进程ID号的内存映射关系

选项:

-x:显示详细格式的信息;

其真实文件保存在:/proc/PID/maps;

 

glances – A cross-platform curses-based system monitoring tool:跨平台的基于指针的系统监控工具

内建命令:h:获取帮助

C/S模式下运行glances命令:适合于内网监控。

服务端模式:glances -s -B IPADDR

客户端模式:glances -c IPADDR

 

dstat – versatile tool for generating system resource statistics:用于生成系统资源统计信息的万能工具

dstat [-afv] [options..] [delay [count]]

常用选项:

-c:cpu相关信息;

-C #,#,…,total

-d:硬盘相关信息;

-D total,sda,sdb,…

-g:显示page相关统计数据

-m:显示内存相关统计数据

-n:显示network相关统计数据

-p:显示process相关统计数据

-r:显示IO相关统计数据

-s:显示swapped相关统计数据

–tcp:显示tcp协议

–udp:显示udp协议

–raw:显示raw

–socket:显示tcp、udp、socket等等

–ipc:显示进程间通讯

–top-cpu:显示最占用cpu的进程

–top-io:显示最占用io的进程

–top-mem:显示最占用内存的进程

–top-latency:显示延迟最大的进程

 

kill命令:向进程发送控制信号,以实现对进程管理;

显示当前系统可用控制信号:1、kill -l;2、 man 7 signal

常用控制信号:

1) SIGHUP:无需关闭进程而让其重读配置文件;

2) SIGINT:中止正在运行的进程;相当于Ctrl+c;

9) SIGKILL:杀死正在运行的进程;

15) SIGTERM:终止正在运行的进程;

18) SIGCONT:让停止态的进程运行;

19) SIGSTOP:让进程处于停止态;

kill [-s signal|-SIGNAL] pid…

 

终止“名称”之下的所有进程;

killall [-s signal|-SIGNAL] pid…

 

Linux系统作业控制:

job:

前台作业(foregroud):通过终端启动,且启动后会一直占据终端;

后台作业(background):可以通过终端启动,但启动后即转入后台运行(释放终端);

如何让作业运行于后台?

(1)运行中的作业

Ctrl+Z   注意:送往后台后,作业会转为停止态;

(2)尚未启动的作业

# COMMAND &     注意:此类作业虽然被送往后台,但其依然跟终端相关;如何希望送往后台的作业剥离与终端的关系: # nohup COMMAND &

查看所有的作业列表:jobs

可实现作业控制的常用命令:

# fg [%] 作业号:把指定的作业调回前台;

# bg [%] 作业号:让送往后台的作业在后台继续运行;

# kill % 作业号:终止对应的作业;

 

调整进程优先级:

可通过nice值调整的优先级范围:100-139;分别对应于:-20,19

进程启动时,其nice值默认为0,其优先级为120;

nice命令:以指定的nice值启动并运行命令;

nice [OPTION] [COMMAND [ARG]…]

选项:-n NICE

注意:仅管理员可调低nice值;

 

renice [-n] NICE pid…:调整正在运行进程的nice值

查看NICE值和优先级:

# ps axo pid,ni,priority,comm

未涉及的命令:sar,tsar,

 

网络客户端工具:

ping、lftp、ftp、lftpget、wget等

ping [option] destination

-c #:发送的ping包个数;

-w #:ping命令超时时长

-W #:一次ping操作中,等待对方响应的超时时长;

-s #:指名ping包报文大小;

 

hping命令:

–fast

–faster

–flood

-i ux

 

traceroute命令:跟踪从源主机到目标主机之间经过的网关;

 

ftp命令:ftp服务命令行客户端工具;

 

lftp [-p port] [-u user[,pass]] [site]

get,mget

put,mput

rm,mrm

 

wget [option]… [URL]…

-b:在后台执行下载操作;

-q:静默模式,不显示下载进度;

-O file:下载文件的保存位置;

-c:续传;

–limit-rate=amount:以指定的速率传输文件;

 

bash编程:

顺序执行:

选择执行:if,case

循环执行:for,while,until

 

for循环格式:

for VARAIBLE in LIST;do

循环体

done

 

while循环格式:

进入循环条件:CONDITION测试为“真”;

退出循环条件:CONDITION测试为“假”;

while CONITION;do

循环体

循环控制变量修正表达式

done

 

until循环格式:

进入循环条件:CONDITION测试为“假”;

退出循环条件:CONDITION测试为“真”;

until CONITION;do

循环体

循环控制变量修正表达式

done

例子:打印九九乘法表

#!/bin/bash
#
for j in {1..9};do
for i in $(seq 1 $j);do
echo -n -e “${i}x${j}=$[${i}*${j}]\t”
done
echo
done

 

 

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91504

(1)
N26-深圳-城市蜗牛N26-深圳-城市蜗牛
上一篇 2018-02-08 09:39
下一篇 2018-02-08 16:57

相关推荐

  • 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为

    1.概述        你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象)。至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与官员之间耦合在一起,让多个(部门)对象都有可能接收请求,将这些(部门)对象连接成一条链,并且沿着这条链传递…

    Linux干货 2015-07-15
  • 自制一个小型Linux(附带网络功能)

      我们这次讲述一下Linux启动的启动流程以及制作一个附带网络功能的mini linux 一、叙述 二、为什么要制作这么一个小型的系统 三、怎么制作 1、制作步骤 2、将虚拟机添加网络功能 一、叙述   在制作一个小型的Linux之前,首先你得明白Linux系统的启动过程,我们用一张图来进行说明  二、为什…

    Linux干货 2016-12-21
  • Linux基础知识(四)

    本文主要讲述:Linux上用户和组的基本管理,具体包括一下内容 1、复制/etc/skel目录到/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id…

    Linux干货 2016-10-16
  • N28-第一周

    1. 描述計算機的組成及其功能。
    2. 按系列羅列Linux的發行版,並描述不同發行版之間的聯繫與區別。
    3. 描述Linux的哲學思想,並按照自己的理解對其進行解釋性描述。
    4.說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,並配合相應的示例來闡述。
    5.如何在Linux系統上獲取命令的幫助信息,請詳細列出,並描述man文檔的章節是如何劃分的?
    6.請羅列Linux發行版的基礎目錄名稱命名法則及功能規定。

    Linux干货 2017-12-04
  • RPM及YUM工具介绍及使用(下)

    YUM工具 YUM工作原理 YUM工具的出现就是为了解决rpm工具不能够自动解决软件包之间的依赖关系这一难题的。它的工作原理大致如下:YUM透过分析RPM的标头资料,根据各软件的相关性找出软件所依赖的软件列表,然后去下载速度最快的yum仓库中下载所有相关RPM软件包,然后完成相应软件的安装。同时yum工具和rpm工具一样,也可以提供对软件包的查询,安装、升级…

    Linux干货 2016-12-26
  • N26-第一周作业

    1、描述计算机的组成及其功能。 运算器(对数据进行各种算术运算和逻辑运算,即对数据进行加工处理)、控制器(对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问)、存储器(存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息)、I/O      …

    Linux干货 2017-01-13