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)
上一篇 2018-02-08 09:39
下一篇 2018-02-08 16:57

相关推荐

  • 逻辑卷管理(LVM)

    逻辑卷管理(LVM) LVM概念 是系统上对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。 安装Linux系统时,最常见的问题是如何评估各分区大小,以分配合适的硬盘空间。随着LVM的出现,这些问题都引刃而解了,用户在无需停机的情况下方便地情况下方便的调整个分区的大小。 LVM重点在于可以弹性的调整文件系统的容量…

    Linux干货 2016-11-22
  • mysql编译安装

    MYSQL编译安装:参考(http://v.youku.com/v_show/id_XMjc4MDUwNjYyOA==.html?from=s1.8-1-1.2&spm=a2h0k.8191407.0.0)(http://oldboy.blog.51cto.com/2561410/1917295)     编译安装mysql,最好…

    Linux干货 2017-06-09
  • Tomcat公猫

    官方站点:http://tomcat.apache.org/ Tomcat是一个能够运行java页面(jsp)的java’web服务器程序;安装使用之前需要先安装jdk包 jdk是JAVA的开发工具包,已随base收录进来,安装jdk1.8版本:yum -y install java-1.8.0-openjdk-devel (其中jvm虚拟机的运行程序就叫j…

    2017-05-23
  • Hadoop Hive sql语法详解

    Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需 要的内容,这套SQL 简称Hive SQL,使不熟悉mapredu…

    Linux干货 2015-04-13
  • LINUX课堂笔记(第一周)

    2018.03.05 LINUX: 切换虚拟终端:CTRL+ALT+F[1-6] 查看当前得终端设备命令:tty 查看内存: cat /proc/meminfo free -h 查看分区: cat /proc/partitions lsblk 查看CPU: lscpu cat /proc/cpuinfo 查看版本 cat /etc/centos-releas…

    Linux干货 2018-03-15
  • lvs三种基础模型

    1: LVS-DR 模式(调度器与实际服务器都有一块网卡连在同一物理网段上)简要的网络结构如下所示 lvs-DR模型是lvs的默认模型,也是企业中用到的最多的模型    解读:直接路由模型,每个Real Server上都有两个IP:VIP和RIP,但是VIP是隐藏的,就是不能提高解析等功能,只是用来做请求回复的源IP的,Director上…

    Linux干货 2016-08-15