Linux 进程和作业管理

Linux进程和作业管理

=================================================================

内核的功能:进程管理(进程调用,保存现场,恢复现场)、文件系统、网络功能、驱动功能、安全功能

process:运行中的程序的一个副本:

存在生命周期

linux内核存储进程信息的固定格式:task struct(任务结构)

多个任务的task struct组件的链表:task list(任务列表)

进程创建:

init进程是由内核创建,其余的进程都有父进程创建。

进程优先级:

0-139:

1-99:实时优先级

100-139:静态优先级

**数字越小,优先级越高**

nice值:-20,19

进程类型:

守护进程:daemon:在系统引导过程中启动进程,跟终端无关的进程

交互式进程(前台进程):跟终端有关,通过终端启动的进程

**注意:也可以把前台启动的进程送往后台,以守护模式运行

进程状态:

运行态:runing

就绪态:ready

睡眠态:

可中断:interruptable

不可中断:uninterruptable

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

僵死态:zombie

进程的分类:

cpu-bound

IO-bound

推荐书籍:《Linux内核设计与实现》、《深入理解Linux内核》

启动进程的方式:

系统自启动,与终端无关;用户通过终端启动,与终端相关的进程。

=================================================================

进程管理***

Linux系统上的进程查看及管理工具:pstree、ps、pldof、pgrep、top、htop、glances、pmap、vmstat、dstat、kill、job、bg、jg、nohup、nice、renice、killall...

-----------------------------------------------------------------

pstree命令:

display a tree of processes

centos6所有进程的父进程是init。centos7所有进程的父进程是syetemd。

pstree -p  查看进程树并显示pid

pstree -u  查看进程树并显示用户

-----------------------------------------------------------------

ps命令:

report a snapshot of the current processes.当前进程的快照

###/proc/:内核中的状态信息:

内核参数:

可设置其值从而调整内核运行特性的参数:/proc/sys/

状态变量:其用于输出内核中统计信息或状态信息,仅用于查看###

ps [options]

选项三种风格:

1   UNIX options, which may be grouped and must be

preceded by a dash.

2   BSD options, which may be grouped and must not be

used with a dash.

3   GNU long options, which are preceded by two dashes.

选项:

a:所有与终端相关的进程

x:所有不与终端相关的进程

[kthreadd]==>>[]表示内核进程。pstree是看不到[]

u:以用户为中心

user   进程用户

pid    进程的标识号

%CPU   cpu使用率

%MEM   内存的使用率

VSZ    虚拟内存使用量。虚拟内存集

RSS    物理内存使用量。常驻内存集

TTY    控制台

STAT   进程状态:

r 运行,S:可中断睡眠,D:不可中断睡眠,T:停止,z:僵死,+:前台进程,l:多线程,N:低优先级进程,<:高优先进程,s:会话引导

START  开启进程的时间

TIME   占用cpu的时间

COMMAND 终端上进程的名称

-e:显示所有进程

-f:

常用组合三:-ef组合: C   cpu占用百分比

STIME   启动时间

TIME    累积使用时间

CMD      启动此进程的命令

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

PSR :运行在那颗cpu之上

-H:以层级结构显示进程信息

常用组合:-eFH,-eo axo **o一定写在后面!

o file file...自定义显示的字级列,以逗号分隔

常用的file:pid ni pri  pcpu stat comm tty ppid rtprio

ni:nice值

pri:priority(进程)优先级

rtprio:real time priority,实时优先级

-----------------------------------------------------------------

pgrep pkill命令

look  up  or signal processes based on name and other

attributes=查找或基于名称和其他的信号处理属性

-u  uid:

-U   显示指定用户的进程

-t   显示指定的终端的进程

-l   显示进程名

-a  显示完整格式的进行名

-P   显示此进程的子进程

-----------------------------------------------------------------

pidof 命令

根据进程名,取其pid

ex:

# pidof 进程名称

-----------------------------------------------------------------

top命令

uptime:显示系统时间,运行时长及平均负载==就是top命令输出的第一行

平均负载:过去的1分钟,5分钟,15分钟的平均负载

显示的cpu信息解释:

Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.0%hi,  0.3%s

Cpu(s):  cpu占用百分比

0.3%us,  用户进程所占用cpu的百分比

0.3%sy,  内核空间的内核所占用cpu百分比

0.0%ni,  nice调整以后所占用的u百分比

99.0%id,  空闲百分比

0.0%wa,  等待io完成所消耗的百分比

0.0%hi,  处理硬件中断所占据的百分比

0.3%si, 处理软件件中断所占据的百分比

0.0%st, 被虚拟化程序所分走的百分比

排序:

P 以占据cpu的百分比排序

M  以占据内存百分比排序

T  累积占用cpu时间排序

************

top在执行过程中可以使用的按键命令

? 显示可以输入的命令

P   按照cpu使用率排序

M  按照内存使用率排序

N   按照pid来排序

T    按照cpu时间积累排序

k   杀死指定pid对应的进程

r    给予某个pid重新制定一个nice值

r  pid   nice值

q 退出

>  翻页

<  翻页

************

首部信息:uptime信息:l命令,tasks命令及cpu信息:t命令,内存信息:m命令

退出命令:q,修改刷新时间:s,终止指定的进程:k

-d #:指定刷新时间间隔,默认是3秒

-b:以批次方式显示

-n#:显示多少批次

top -u root     //指定某人发起的所有进程

top -p 1       //查看pid为1所对应的进程状态

-----------------------------------------------------------------

htop命令

此命令要单独安装。  ***扩展:安装软件的中良好途径:epel***

-d #:指定延迟书剑

-u  userName :仅显示指定用户的进程

-s colume:以指定字段进行排序

子命令:

l:显示选定

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

t:以层级关系显示各进程状态

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

-----------------------------------------------------------------

vmstat命令

Report virtual memory statistics(报告虚拟内存统计)

vmstat [options][delay [ count]]

术语解释:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

1  0      0 1394972  76056 312680   0   0     3      6   13   11  0  0 100  0  0

procs:

r:等待运行的进程个数;cpu上等待运行的任务的对列长度。

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

memory:

swpd:交换内存使用总量

free:空闲的物理内存容量

buff:用于buff的内存总量(缓冲)

cache:用于cache的内存总量(缓存)

swap

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

so (swapout)数据离开swap的速率(kb/s)

io

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

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

system

in (interrupts)中断速率

cs (context switch)上下文切换的速率

cpu

us user space

sy system

id idle

wa wait

st stolen

选项:-s

-----------------------------------------------------------------

pmap命令

report memory map of a process(报告内存映射表)

pmap [ -x | -d ] [ -q ] pids...

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

另一种查看方式:

[[email protected] htop-1.0.2]# cat /proc/1/maps

-----------------------------------------------------------------

glances命令

-An eye on your system

具体安装过程可见博文glances安装。

可以监控本机也可以通过客户端服务器模式监控其他机器。

glances [OPTIONS]

常用选项:

-b:以byte为单位显示网上数据速率

-d:关闭磁盘i/o

-m:关闭mount模块

-n:关闭network模块

-t #:刷新时间间隔

-l:每个cpu的相关数据单独显示

-o:{HTML|CSV}:输出格式

-f:/PATH/TO/SOMEDIR:设定输出文件的位置

c/s模式下运行glances命令:

服务模式:

glances -s -B IPADDR(本机的某地址,用于监听)

-s service。-B IP地址

客户端模式:

lances -c  IPADDR

-c client

-----------------------------------------------------------------

dstat命令

versatile tool for generati systeresourcestatistics(用于生成系统资源的多功能工具统计)

常用参数:

-c 只显示cpu信息

-C 1 2 ..

-d --disk 显示磁盘相关的信息

-D  sda  sdb ..

-g 显示page相关的速率信息

-m  显示内存的信息

-n  interface相关的信息

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

-r 心事io需求的相关统计数据

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

--tcp   --udp  --raw  --socket  --ipc

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

--top-io最占用io的进程

--top-mem最占用内存的进程

--top-lantency 延迟最大的进程

-----------------------------------------------------------------

kill 命令

terminate a process(终止一个进程):用于向进程发送信号,以实现进程的管理:

显示系统当前的信号:kill -l   signal

每种信号的标识方法有三种:

1.信号的数字标识

2.信号的完整名称

3.信号的简写名称

向进程发送信号:

kill [-s signal|-p] [--] pid...

常用的信号:

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

2) SIGINT  :终止正在运行的进程,相当于ctrl +c

9) SIGKILL : 杀死运行中的进程,强制杀死

15) SIGTER: 终止正在运行的进程,正常杀死

18) SIGCONT :进程继续

19) SIGSTOP: 进程停止 相当于ctrl + z,jb

-----------------------------------------------------------------

killall 命令

kill processes by name

常用用法:

killall [-signal ] program(程序)

=================================================================

作业管理***

job:

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

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

如何让作业运行在后台?

1.运行中的作业

ctrl+Z

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

2.尚未启动的作业

COMMAND &

注意:此类作业虽然被送往后台,但是其依然与终端有相关,如果终端停止,此类作业也停止。如果希望把送往后台的作业且脱离终端的关系(用下面的命令):

nohup COMMAND & :运行于后台且脱离终端模式

-----------------------------------------------------------------

查看所有的作业:

jobs

如:

[[email protected] /]# jobs

[1]+  Stopped                 vim a.txt     [1]:作业号

-----------------------------------------------------------------

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

fg [%jobnumber]  :指定的作业掉回前台

bg  [%jobnumber] :让送往后台的作业继续运行

kill  [%jobnumber]  ==%不能取消。:终止指定的作业

-----------------------------------------------------------------

调整进程的优先级:

可通过nice值调整的优先级:100~139

分别对应于:-20,19

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

-----------------------------------------------------------------

nice命令

以指定的nice值并运行命令(开启进程的时候指定的nice值)

nice [OPTION] [COMMAND [ARG]...]

-n nice

注意:只有管理员可调低nice值

-----------------------------------------------------------------

renice命令

修改进程的nice

renice {-n} nice pid

ex:

renice 10 13054  将nice修改为10

renice -10 16604  将nice修改为-10

-----------------------------------------------------------------

查看nice值和优先级

ps   axo pid,ni,common,prioritiy

-----------------------------------------------------------------

为涉及的命令:sar ...

-----------------------------------------------------------------

总结命令:htop dsata top ps

=================================================================

网络客户端工具:

ping ftp lftp get hping  traceroute lftp

ping命令: send ICMP ECHO_REQUEST to network hosts

icmp:互联网消息控制协议:internet control message protocol

-c (count)ping包个数

-w  ping命令的超时时长

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

-s  指明ping包的大小。默认是64byte

-----------------------------------------------------------------

hping命令    系统默认不安装

--fast

--fasts

--flood

-----------------------------------------------------------------

traceroute命令

跟踪从当前主机到目标主机之间经过的网关(路由设备)

-----------------------------------------------------------------

ftp命令

文件传输协议

基于ftp协议访问ftp服务命令行客户端工具

如下:

[[email protected] ~]# ftp [email protected]

-----------------------------------------------------------------

lftp命令

Sophisticated(精致的) file transfer program

用来取代ftp命令:

口令:

[[email protected] ~]# lftp -u ftp 192.168.21.128

口令:

lftp [email protected]:~> help

不用口令:

[[email protected] ~]# lftp -u ftp,ftp 192.168.21.128

lftp [email protected]:~>help

***支持tab自动补全***

-----------------------------------------------------------------

lftpget命令

get a file with lftp(1)  直接下载

-c:继续此前的下载

-----------------------------------------------------------------

wget命令

下载工具

wget [option]... [URL]...

-b 在后台执行下载操作

-d  静默模式,不显示进度

-o 下载的文件的保存路径

--limit-rate=amount 以指定的速率下载

=================================================================

时间: 2024-10-29 00:41:50

Linux 进程和作业管理的相关文章

Linux进程及作业管理

一.进程查看及其管理工具 --------------------------------------------- ps命令:报告当前进程的快照信息 ps - report a snapshot of the current processes. 选项: -A:显示所有进程与-e相同的效果 -a:不与终端相关的所有进程 -u:与用户相关的进程 -x:通常和a,u结合使用,显示出来比较全面的信息 -f:做一个更为完整的输出 常用的组合:     ps -ef 以完整的信息显示所有进程信息   

Linux系统--Linux进程与作业管理(2)

Linux系统--Linux进程与作业管理(2) Linux进程相关的基本概念已经了解,Linux进程管理的一些命令: pstree,ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill,pkil,job,bg,fg,nohup 1.pstree命令: pstree - display a tree of processes:以树状形式显示当前系统进程,和命令tree相似. 2.ps命令: ps - report a snapshot of 

Linux系统--Linux进程与作业管理(1)

Linux系统--Linux进程与作业管理(1) 先了解一些基本概念:内核的功能,程序的组成,进程,进程的类型和运行状态,进程的分类,Linux中的第一个进程init,Linux内核存储进程信息的格式,进程的优先级,进程间的通信. 1.Linux内核的功能和程序的组成: Linux内核是一种开源电脑操作系统.是用来与硬件打交道并为用户程序提供一个有限服务集的软件.Linux内核支持模块化,支持模块的动态加载和卸载,可以把模块驱动编辑到内核中,也可以不编辑到内核,直接调用需要的模块.Linux内核

Linux系统--Linux进程与作业管理(3)

Linux系统--Linux进程与作业管理(3) Linux进程管理和作业管理的另外几种管理命令:vmstat,dstat,pmap,glances,kill 1.vmstat命令: vmstat - Report virtual memory statistics vmstat命令可以看到整个机器的CPU,内存,IO等使用情况.此命令不是动态显示的,需要手动进行刷新. vmstat #:相隔#秒刷新. 直接执行vmstat命令的结果为: 各个字段的含义: procs: r:等待运行的进程的个数

Linux自学笔记——linux进程及作业管理

内核的功用主要有进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能这几个方面,本文主要讨论linux进程及作业管理. 进程管理: 进程,process,运行中程序的一个副本,且存在生命周期: 进程分为CPU bound和I/Obound. CPU bound:CPU密集型(类似于高清视频) I/O bound:IO密集型(编辑器等频繁IO操作) Linux内核存储进程信息的固定格式为:task struct(结构体) 多个任务的task struct组件的链表:task list 进程创

Linux 进程及作业管理

概述: 一.进程的相关概念: 1.相关定义: 内核的功用:   进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等: 通俗的来说进程是运行起来的程序.唯一标识进程的是进程描述符(PID),在linux内核中是通过task_struck和task_list来定义和管理进程的 : 进程 Process:  运行中的程序的一个副本,是被载入内存的一个指令集合:   ˙进程ID(Process ID,PID)号码被用来标记各个进程;   ˙UID.GID.和SELinux语境决定对文件系统的存

Linux进程与作业管理(一)

一.Linux进程概念 1.进程:Process,是运行中的程序的一个副本,有生命周期,都由其父进程创建 Linux内核存储进程信息的固定格式:taskstruct 多个任务的的taskstruct组件的链表:task list 2.进程优先级:0-139 0:一般不使用 1-99:实时优先级:数字越大优先级越高,系统自动安排 100-139:静态优先级:数字越小优先级越高,可手动更改 3.Nice值:-20至19,对应于100到139 普通用户只能将自己的优先级调低,root用户可以随意调制

Linux进程及作业管理相关命令

作为初学者,Linux永远是那么神秘,高大上的内容我也不会,所以在这里只能整理一下与管理相关的命令了,如果有不对的或不准确的地方,请指正. 可参考:Linux内核--进程管理与调度http://www.linuxidc.com/Linux/2014-08/105366.htm pstree:显示进程状态树 作用:列出当前的进程,以及它们的树状结构 用法:pstree [选项] -a: 显示执行程序的命令与完整参数 ps:查看系统中进程的状态 在/proc/目录中包含了进程和内核模拟生成的伪文件,

linux进程及作业管理的四大长老-htop/ dstat /top/ ps

   一.进程简介     进程是linux用来表示正在运行的程序的一种抽象概念,程序内存的使用,处理器时间和I/O资源就是通过这个对象进行管理和监视的. 一个程序要先运行在用户空间,当他需要去使用硬件资源的时候,就不得不去调动内核才能取得使用权,这时候调动内核,进入内核空间,当内核处理完毕需求之后,将指令返回给用户,一个调用完成. 进程会以时间片段在CPU运行的,CPU以一根时间线被划分成无数个片段:当一个进程运行到某个阶段,需要暂时终止的时候,需要保存一个进程运行的现场,叫保存现场:执行到某