Linux进程、作业管理及网络配置_阿汤博客
阿汤博客-承接中小企业服务器维护和网站维护,有意者可以联系博主!

Linux进程、作业管理及网络配置

学习笔记 601℃ 0评论

内核的功用:内核管理、文件系统、网络功能、内存管理、内存管理、驱动程序、安全功能

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

存在生命周期

linux内核存储进程信息的固定格式:task stract

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

进程创建:

init

父子关系

进程:都由起父进程创建

fork(), clone()

进程优先级:

0-139:

1-99实时优先级

100-139:静态优先级

数字越小,优先级越高:获得更多的cpu运行时间,更优先获得运行的机会

Nice值:优雅的,友好的

-20,19(100-139)

普通用户只能提供自己进程的nice值

Big O

O(1),O(logn), O(n) ,O(n^2) , O(2^n)

进程内存:

Page Frame :页框,用存储页面数据

存储page

MMU:memory Management Unit

IPC: Inter Process COmmunication

同一主机上:

signal

shm: shared memory

semerphor

不同主机上:

rpc: remote procecure call

socket:

Linux内核:抢占式多任务

进程类型:

守护进程:daemon,在系统引导过程中启动的进程

前台进程:根终端相关,通过终端启动的进程

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

进程状态:

运行态:running

就绪态:ready

睡眠态:sleep

可中断:interrunptable

不可中断:uninterruptable

停止态:stopped

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

僵死态:zombie

进程的分类:

CPU-Bound

IO-Bound

Linux系统上的进程查看及管理工具:pstree ps pidof  pgrep top htop glances pman vmastat dstat kill pkill job bg fg nohup nice renice killall

Centos 5: sysV init 

Centos 6: upstart

Centos 7: systemd

pstree命令:

pstree – display a tree of processes

ps命令:Process State

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

内核参数:可设置其值从而调整内核运行特性参数;

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

参数:模拟成文件系统类型:

进程:

/proc/#:

#:pid

ps – report a snapshot of the current processes.

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:所有与终端无关的进程;

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

常用组合之一:aux

VSZ:虚拟内存集

RSS:Resldent Size,常驻内存集

STAT:

R:running 运行或就绪

S:interruptable sleeping 可中断的睡眠

D:uninterruptable sleeping 不可中断的睡眠

T:stopped 停止

Z:zomble 僵死

+:前台进程

l:多线程进程

N:低优先级进程

<:高优先级进程

s:sesslon leader 会话进程首进程

-e:显示所有进程

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

常用组合之二:-ef

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

C:cpu utilization cpu占用cpu%

PSR:运行于哪颗cpu之上

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

-l:

常用组合之三:-eFH

常用组合之四:

o field1,field2,….自定义要显示的字段列表,以逗号分开

常用的field: pid ,ni ,pri ,psr ,pcpu, stat ,comm, tty ,ppid

ni: nice值

pri: priority,优先级

rtprio: real time priority,实时优先级

-eo

axo

pgrep, pkill命令:

– look up or signal processes based on name and other attributes

pgrep[options] pattern

-u uid: effective user

-U uid: read user

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

-l :显示进程名称

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

-P pid: 显示此进程的子进程

pidof命令:

根据进程名,取其pid

top命令:

– display Linux tasks

排序:

P:以占据cpu百分比排序

M:以占据内存百分比排序

T:累积占用cpu时间排序

首部信息:

uptime信息:l命令

tasks及cpu信息:t命令

内存信息:m命令

退出命令:q

修改刷新时间间隔:s

终止指定的进程:k

选项:

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

-b: 以批次方式显示

-n #:显示多少批次

uptime命令:显示系统时间,运行时长,平均负载

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

等待运行的进程队列长度;

htop命令:

选项:

-d #:指定延迟时间

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

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

子命令:

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

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

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

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

vmast命令:

– Report virtual memory statistics

vmstat [options] [delay [ count]]

procs:

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

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

memory:

swpd:交换内存使用总量;

free: 空闲的物理内存总量;

buffer:用于缓冲的内存总量

cache:用于缓存的内存总量

swap:

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

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

io:

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

bo:保存数据至块设备的速度()

system:

in:interrupts,中断速率

cs:context switch ,上下文 切换的速率

cpu:

us :用户进程消耗的CPU时间百分比
sy :内核进程消耗CPU时间百分比
id :CPU处在空闲状态的时间百分比

wa:IO等待所占的CPU时间百分比

st:虚拟机占用的时间百分比

选项:

-s:显示内存统计数据

pmap命令:

– report memory map of a process(查看进程的内存映像信息

pmap [options] pid [… ]

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

另一种查看方式:cat /proc/PID/maps

glances命令:

– A cross-platform curses-based monitoring tool

内建命令:

常用选项:

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

-d: 关闭磁盘I/O模块

-m: 关闭mount模块

-n: 关闭network模块

-t #:刷新时间间隔

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

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

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

C/S模式下运行glancs命令:

服务模式:

glances -s -B IPaddr

ipaddr: 本机某地址,用于监听

客户端模式:

glances -c IPaddr

ipaddr:是远程服务器的ip地址

dstat命令:

– versatile tool for generating system resource statistics

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

常用选项:

-c, –cpu:显示cpu相关信息;

-C #,#,…,total

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

-D sda,sdb,…,total

-g:显示page相关的速率数据

-m:Memory相关统计数据

-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)SIGTERM: 终止运行中的进程;

18)SIGCONT:

19)SIGSTOP:

指定一个信号:

信号号码:kill -l

信号名称:kill -SIGKILL

信号名称简写:kill -KILL

killall命令:

– kill processes by name

killall [-SIGNAL] program

Linux系统作业控制:

job:

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

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

如何让作业运行于后台?

(1)运行中的作业

Ctrl+z

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

(2)尚未启动的作业

#COMMAND &

注意:此类作业虽然被送往后台,但其依然与终端相关,如果希望把送往后台的作业剥离与终端的关系;

# nohup COMMAND &

查看所有的作业:

# jobs

可实现走也控制的常用命令

fg [[%]JOB_NUM] :把指定的作业调回前台

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

kill  %JOB_NUM:终止指定的作业

调整进程优先级:

可通过nice值调整的优先级范围:100-139

分别对应于:-20,19

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

nice命令:

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

nice [OPTION] [COMMAND [ARGU]..]

选项:

-n NICE

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

renice命令:

renice [-n] NICE PID..

查看NICE值和优先级:

ps axo pid,ni,priority,comm

未涉及到的命令:sar,tsar,lostat,iftop ,nethog

网络配置

linux:网络术语内核的功能

网卡命名方式:

RHEL5:/etc/modprobe.conf

alias

RHEL6:编辑/etc/udev/rules.d/70-persistent-net.rules

ifconfig [ethx]命令:

-a:显示所有网卡接口的配置信息

ifconfig ethx IP/MASK [up|down] 

配置的地址立即生效,但重启网络服务或主机,都失效

网络服务:

RHEL5:/etc/init.d/network {start|stop|restart|status}

RHEL6:/etc/init.d/NetworkManager  {start|stop|restart|status}

网关:

route

add:添加

-host:

-net

-net 0.0.0.0 添加默认路由

route add -net|-host DEST gw NEXTHOP

route add default gw NEXTHOP

del:删除

-host
-net
route del -net 10.0.0.0/8
route del -net 0.0.0.0

route del default

注意:所做出的改动重启网络服务或主机后失效

route -n:以数字方式显示各主机或端口等相关信息

网络配置文件:

/etc/sysconfig/network

网络接口配置文件:

/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME

DEVICE=:关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致;

BOOTPROTO={static|none|dhcp|bootp}:引导协议:要使用静态地址,使用static或none;dhcp表示使用DHCP服务器获取地址。

IPADDR=:IP地址

NETMASK=:子网掩码

GATEWAY=:设置默认网关

ONBOOT=:开机时是否自动激活此网络接口

HWADDR=:硬件地址,要与硬件中的地址保持一致;可省略

USERCTL={yes|no}:是否允许普通用户控制此接口

PEERDNS={yes|no}:是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的DNS地址

注意:不会立即生效,但重启网络服务或主机都会生效

路由:

/etc/sysconfig/network-scripts/route-ethx

添加格式一:

DEST   VIA    NEXTHOP

添加格式二:

ADDRESS0=目标地址

NETMASK0=掩码

GETEWAY0=下一跳地址

DNS服务器指定方法只有一种:

/etc/resolv.conf

nameserver DNS1

nameserver DNS2

指定本地解析:

/etc/host

主机ip  主机名  主机别名

配置主机名:

/etc/syconfig/network

HOSTNAME=

 ip命令:

link:配置网络接口属性

show

ip -s link show

set

ip link set  DEV up|down

addr:协议地址

add

ip addr add ADDRESS dev DEV

del

ip addr del ADDRESS dev DEV

show

ip addr show dev DEV to PREFIX

flush

ip addr flush dev DEV to PREFIX 

route:路由

一块网卡可以使用多个地址:

网络设备可以别名:

eth0

ethx:x , eth0:0, eht1:1, …

配置方法:

ifconfig ethx:x  IP/NETMASK

etc/sysconfig/network-scripts/ifcfg-ethx:x

DEVICE=ethx:x

注意:非主要地址不能使用DHCP动态获取

linux IP命令用法详解

网络客户端工具:

ping/lftp/ftp/lftpget/wget等;

ping命令:

– send ICMP ECHO_REQUEST to network hosts

ICMP:Internet  control message protocol

ping [OPTION] destination

-c #: 发送的ping包次数

-w #:ping命令超时时长

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

-s #: 指明ping 包报文大小

hping命令:(package:hping3)

– send (almost) arbitrary TCP/IP packets to network hosts

–fast

–flood

–faster

-i uX :发送UDP包 -i u1000

traceroute命令:

– print the route packets trace to network host

跟踪从源主机到目标主机直接经过的网关;

ftp命令:

ftp: File Transfer Protocol

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

lftp命令:

lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site]

get,mget

put,mput

rm,mrm

lftpget命令:

lftpget [-c] [-d] [-v] URL [URL…]

-c:继续此前的下载

wget命令:

The non-interactive network downloader

wget [option]… [URL]…

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

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

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

-c:续传

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

转载请注明:阿汤博客 » Linux进程、作业管理及网络配置

喜欢 (1)or分享 (0)