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

相关推荐

  • 二叉树的应用详解 – 数据结构

    概述: 平衡树——特点:所有结点左右子树深度差≤1 排序树——特点:所有结点“左小右大字典树——由字符串构成的二叉排序树判定树——特点:分支查找树(例如12个球如何只称3次便分出轻重)带权树——特点:路径带权值(例如长度) 最优树——是带权路径长度最短的树,又称 Huffman树,用途之一是通信中的压缩编码。 1. 二叉排序树(二叉查找树 Bina…

    Linux干货 2015-04-07
  • 几种常见的linux发行版

    redhat :Red Hat Enterprise Linux,是一个非常强大的服务器系统,超强的生命周期支持10年以上的升级和技术支持同样费用也非常可观8千多一个授权一年。如果没有license是不能在线升级系统,和通过yum安装软件。而centos则没有这些限制,所以centos是非常收欢迎的系统。 centos:是一个社区企业系操系统,其基础架构与r…

    Linux干货 2017-08-19
  • DNS高级应用之子域授权&区域转发

    一、环境准备:    1、准备三台测试服务器,划分如下:    主DNS服务器:eth0:192.168.10.203;负责mylinux.com域解析;确保可以正常解析      子域DNS服务器:eth0:192.168.10.120; 负责子域ops.mylinux.com解析; &…

    Linux干货 2015-06-01
  • Python语法基础之if while for常见的简单算法

    格式要符合语法要求

    2017-09-14
  • NFS,samba,vsftpd的基本使用

    一.NFS介绍 NFS(Network File System),全名叫做网络文件系统,是由SUN公司研发的。顾名思义,简单理解就是通过网络互联,将本地的文件系统共享出去,从而实现资源的共享,NFS监听在TCP的2049端口上。当涉及到主机之间的通信时,就会存在安全问题,于是为了安全考虑,主动提出请求的一方(客户端)需要提供一些基本信息来认证,这些信息是需要…

    Linux干货 2017-01-04
  • iptables简单概念..

    iptables: 包过滤型的防火墙 Firewall:防火墙,隔离工具;工作于主机或网络边缘,对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测,对于能够被规则匹配到的报文作出相应处理的组件;    主机防火墙     网络防火墙   &…

    Linux干货 2017-06-19