linux进程监控及管理

  • 进程状态
    • 进程类型
    • 进程状态
    • 进程的分类
  • Linux 系统状态的查看及管理工具
  • 进程相关
    • pstree
    • ps默认显示当前终端中的进程
      • 字段含义
        • STAT 进程状态
      • 常用组合
    • 进程优先级调整
      • nice OPTION COMMAND ARG
        • 执行时指定
      • renice -n priority pid
      • top命令输入r然后根据提示输入进程ID再输入优先级数值
    • 搜索进程
      • 最灵活ps 选项 其它命令
      • 按预定义的模式pgrep
      • 按确切的程序名称sbinpidof
      • 按确切的端口lsof
    • uptime显示当前时间系统 已启动的时间当前上线人数系统平均负载1 5 10 分钟的平均负载一般不会超过1
    • top -dupnb
      • 头部栏位信息简介
      • 正文栏位信息简介
      • 内置命令
        • 排序
        •  首部信息显示
      • top交互命令
      • 使用技巧
    • htop 命令需从Fedora-EPEL 源安装
  • 内存相关
    • vmstat options delay count
      • 字段含义
        • procs
        • memory
        • swap
        • system
        • cpu
    • iostat 统计CPU 和设备IO 信息每个磁盘读写速率统计
    • pmap options pid 进程对应的内存映射
      • 另外一种实现pmap读取此文件
  • 系统监控工具
    • glances 命令EPEL源
      • 内建命令
      • 服务器模式
      • 客户端模式
    • dstat -afv options delay count 代替vmstatiostat
    • kill -s signal-p -q sigval -a pid
      •  显示当前系统可用信号 kill ltrap -l
      • 常用信号man 7 signal
      •  按PID kill -SIGNAL pid
      • 按名称killall -SIGNAL comm
      • 按模式pkill options pattern与pgrep选项类似
  • linux作业控制
    • 让作业运行于后台
  • screenCOMMAND
    • 查看所有作业
    • 作业控制
  • 多脚本并行运行
    • 方法1
    • 方法2
    • 方法3
  • 实例

进程状态

Linux 内核:抢占式多任务

进程类型:

守护进程: daemon, 在系统引导过程中启动的进程, 和 终端无
关进程
前台进程:跟终端相关,通过终端启动的进程
注意:两者可相互转化

进程状态:

  • 运行态:running
  • 就绪态:ready
  • 睡眠态:
    可中断:interruptable
    不可中断:uninterruptable
    停止态:stopped,暂停于内存,但不会被调度,除非手动启动
    僵死态:zombie,结束进程,父进程结束前,子进程不关闭
僵尸进程
一个子进程在其父进程没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。如果其父进程还存在而一直不调用wait,则该僵尸进程将无法回收,等到其父进程退出后该进程将被init回收。
孤儿进程
一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

==僵尸进程将会导致资源浪费,而孤儿则不会。==

进程的分类:

CPU-Bound :CPU 密集型,非交互
IO-Bound :IO 密集型,交互

Linux 系统状态的查看及管理工具

pstree, ps, pidof,pgrep, top, htop, glance, pmap, vmstat, dstat,kill,pkill, job, bg, fg, nohup

进程相关

pstree

pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-Z] [-A|-G|-U][pid|user]
|参数|说明|
|—|—|
-a | 显示出该命令的参数, 假如这个命令进程被其他进程替换掉, 那么进程将显示在括号中 -a 选项包含有压实进程树的选项, 对于相同的进程, 会使用n*(process)的形式展显出来。
-c | 关闭禁用显示结果进程树,在默认情况下,进程子树是会被压缩的。不管有多少进程名相同的进程,都会逐个显示出来。
-G | 使用vt100线性描述树
-h | 突空出显示当前进程的父进程并高亮显示出来,如果没有父进程那么什么都不会显示。
-H | 突出显示出指定进程的父进程信息并高亮显示出来,使用方法为 pstree -H PID
-l | 显示长格式命令选项,在默认的情况下,命令行最多显示宽度为132bit ,超过将不能正常显示。
-n | 基于进程相同的祖先来进行排序,可以命名pid来代替进程名称 。
-p | 显示所有的时程,显示结果包含进程名和时进程ID
-u | 显示出用户的UID,无论何时,这个UID和进程比较UID参数,这个新的UID将在进程名后显示不同的参数。
-U | 使用utf-8字符集以十进制表示

pstree -pc

ps默认显示当前终端中的进程

|参数|说明|
|—|—|
a |选项包括所有终端中的进程
x |选项包括不链接终端的进程
u |选项显示进程所有者的信息
f| 选项显示进程的父进程
o| 属性… 选项显示定制的信息:pid 、comm 、%cpu 、%mem 、state 、tty、euser 、ruser

字段含义

|字段|含义|
|—|—|
VSZ| Virtual memory SiZe ,虚拟内存集,线性内存
RSS| ReSident Size, 常驻内存集
ni|nice值 值
pri|priority 优先级
psr|processor CPU 编号
rtprio|实时优先级

STAT :进程状态

|字段|含义|
|—|—|
R|running
S|interruptable sleeping
D|uninterruptable sleeping
T|stopped
Z|zombie
+| 前台进程
l| 多线程进程
L|内存 分页并带锁
N |低优先级进程
<| 高优先级进程
s| session leader

常用组合:

  • -ef

-e: 显示所有进程

-f: 显示完整格式程序信息
- -eFH

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

-H: 以进程层级格式显示进程相关信息
- eo
-eo pid,tid,class,rtprio,ni,pri,psr,
pcpu,stat,comm
axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,
pid,pcpu,comm
- -axo

ps axo pid,cmd,psr,ni,pri,rtprio

进程优先级调整:

静态优先级:100-139
进程默认启动时的nice 值为0 ,优先级为120
只有根用户才能降低nice 值(提高优先性)

nice [OPTION] [COMMAND [ARG]…]

执行时指定

nice -n -5 /usr/local/mysql/bin/mysqld_safe &

renice [-n] priority pid…

renice -n 2 -p 3432
-n后面是优先级的值;-p是进程号。

top命令。输入r,然后根据提示输入进程ID,再输入优先级数值。

查看:
ps axo pid,comm,ni

搜索进程

最灵活:ps 选项 | 其它命令

按预定义的模式:pgrep

pgrep [options] pattern
|参数|含义|
|—|—|
-u uid|effective user ,生效者
-U uid|real user ,真正发起运行命令者
-t terminal| 与指定终端相关的进程
-l| 显示进程名
-a| 显示完整格式的进程 名
-P pid| 显示指定进程的子进程

tty 
pgrep -lt pts/0 显示pts/0终端的进程名和pid

pgrep -lu wang 显示王wang用户的相关进程

按确切的程序名称:/sbin/pidof

pidof bash

按确切的端口:lsof

  • lsof -i:80 查看tcp或udp为80的端口( netstat -lnp |grep 80)
  • lsof -u username 显示所属user进程打开的文件
  • lsof -g gid 显示归属gid的进程情况
  • lsof +d /DIR/ 显示目录下被进程打开的文件
  • lsof filename 显示打开指定文件的所有进程
  • lsof -i -U //显示所有打开的端口和UNIXdomain文件
  • lsof [email protected] 查看指定网口有哪些进程在使用
  • lsof -i UDP@[url]www.akadia.com:123 //显示那些进程打开了到www.akadia.com的UDP的123(ntp)端口的链接
  • lsof -i [email protected]:ftp -r //不断查看目前ftp连接的情况(-r,lsof会永远不断的执行,直到收到中断信号,+r,lsof会一直执行,直到没有档案被显示,缺省是15s刷新)
  • lsof -i [email protected]:ftp -n //lsof -n 不将IP转换为hostname,缺省是不加上-n参数

uptime显示当前时间,系统 已启动的时间、当前上线人数,系统平均负载(1 、5 、10 分钟的平均负载,一般不会超过1) )

系统平均负载:
指在特定时间间隔内运行队列中的平均进程数
- ==通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么 此主机的性能有严重问题==
- 如果linux 主机是1 个双核CPU,当Load Average为6的时候说明机器已经被充分使用
uptime
00:48:13 up  8:02,  2 users,  load average: 0.00, 0.01, 0.05
00:48:13 up指开机时间
8:02指系统运行了8分零2秒
 2 users表示当前有两个终端登录,至少有一个tty1
 oad average: 0.00, 0.01, 0.05指1,5,10分钟内的平均负载

top [-dupnb]

|参数|说明|
|—|—|
-b |批处理
-c| 显示完整的命令
-I |忽略失效过程
-s |保密模式
-S |累积模式
-i<时间> |设置间隔时间
-d <时间>|默认3s
-u<用户名>| 指定用户名
-p<进程号> |指定进程
-n<次数> |循环显示的次数

头部栏位信息简介

|字段|说明|
|—|—|
us |用户空间
sy |内核空间
ni |改变过优先级的进程占用CPU的百分比
id |空闲CPU百分比
wa |IO等待占用CPU的百分比
hi |硬中断 通过鼠标,硬盘数据移动等操作发送中断信号
si |软中断(模式切换)软件对cpu的操作,比如进程之间的切换
st|虚拟机偷走的时间

正文栏位信息简介

|字段|说明|
|—|—|
PID|进程id
USER|进程所有者
PR|进程优先级
NI|nice值。负值表示高优先级,正值表示低优先级
VIRT|进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES|进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR|共享内存大小,单位kb
S|进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU|上次更新到现在的CPU时间占用百分比
%MEM|进程使用的物理内存百分比
TIME+ | 进程使用的CPU时间总计,单位1/100秒
COMMAND|进程名称(命令名/命令行)

内置命令

排序:

|参数|说明|
|—|—|
P|以占据的CPU 百分比,%CPU
M|占据内存百分比,%MEM
T|累积占据CPU 时长,TIME+

 首部信息显示:

|说明|指令|
|—|—|
uptime 信息|l 命令
tasks 及cpu 信息|t 命令
cpu 分别显示|1 ( 数字)
memory 信息|m 命令
退出命令|q
修改刷新时间间隔|s
终止指定进程|k
保存文件|W

top交互命令

在top 命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s 选项, 其中一些命令可能会被屏蔽。
h |显示帮助画面,给出一些简短的命令总结说明
M |根据驻留内存大小进行排序
P |根据CPU使用百分比大小进行排序
T |根据时间/累计时间进行排序
k |终止一个进程。
i |忽略闲置和僵死进程。这是一个开关式命令。
q |退出程序
r |重新安排一个进程的优先级别
S |切换到累计模式
s |改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s
f或者F |从当前显示中添加或者删除项目
o或者O |改变显示项目的顺序
l |切换显示平均负载和启动时间信息
m |切换显示内存信息
t |切换显示进程和CPU状态信息
c |切换显示命令名称和完整命令行

W |将当前设置写入~/.toprc文件中

使用技巧

-多U多核CPU监控
在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况:
-高亮显示当前运行进程
敲击键盘“b”(打开/关闭加亮效果)
我们发现进程id为2570的“top”进程被加亮了,top进程就是视图第二行显示的唯一的运行态(runing)的那个进程,可以通过敲击“y”键关闭或打开运行态进程的加亮效果
- 敲击键盘“x”(打开/关闭排序列的加亮效果)
- 通过”shift + >”或”shift + <”可以向右或左改变排序列

[root@TG1704 log]# top
top - 14:06:23 up 70 days, 16:44,  2 users,  load average: 1.25, 1.32, 1.35
Tasks: 206 total,   1 running, 205 sleeping,   0 stopped,   0 zombie
Cpu(s):  5.9%us,  3.4%sy,  0.0%ni, 90.4%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  32949016k total, 14411180k used, 18537836k free,   169884k buffers
Swap: 32764556k total,        0k used, 32764556k free,  3612636k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                
28894 root      22   0 1501m 405m  10m S 52.2  1.3   2534:16 java                                                                   
18249 root      18   0 3201m 1.9g  11m S 35.9  6.0 569:39.41 java                                                                   
 2808 root      25   0 3333m 1.0g  11m S 24.3  3.1 526:51.85 java                                                                   
25668 root      23   0 3180m 704m  11m S 14.0  2.2 360:44.53 java                                                                   
  574 root      25   0 3168m 611m  10m S 12.6  1.9 556:59.63 java                                                                   
 1599 root      20   0 3237m 1.9g  11m S 12.3  6.2 262:01.14 java                                                                   
 1008 root      21   0 3147m 842m  10m S  0.3  2.6   4:31.08 java                                                                   
13823 root      23   0 3031m 2.1g  10m S  0.3  6.8 176:57.34 java                                                                   
28218 root      15   0 12760 1168  808 R  0.3  0.0   0:01.43 top                                                                    
29062 root      20   0 1241m 227m  10m S  0.3  0.7   2:07.32 java                                                                   
    1 root      15   0 10368  684  572 S  0.0  0.0   1:30.85 init                                                                   
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:01.01 migration/0                                                            
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0  
    说明:
统计信息区:
前五行是当前系统情况整体的统计信息区。下面我们看每一行信息的具体意义。
第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:
14:06:23 — 当前系统时间
up 70 days, 16:44 — 系统已经运行了7016小时44分钟(在这期间系统没有重启过的吆!)
2 users — 当前有2个用户登录系统
load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
第二行,Tasks — 任务(进程),具体信息说明如下:
系统现在共有206个进程,其中处于运行中的有1个,205个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行,cpu状态信息,具体属性说明如下:
5.9%us — 用户空间占用CPU的百分比。
3.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
90.4% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.2% si — 软中断(Software Interrupts)占用CPU的百分比
备注:在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!
第四行,内存状态,具体信息如下:
32949016k total — 物理内存总量(32GB)
14411180k used — 使用中的内存总量(14GB)
18537836k free — 空闲内存总量(18GB)
169884k buffers — 缓存的内存量 (169M)
第五行,swap交换分区信息,具体信息说明如下:
32764556k total — 交换区总量(32GB)
0k used — 使用的交换区总量(0K)
32764556k free — 空闲交换区总量(32GB)
3612636k cached — 缓冲的交换区总量(3.6GB)
备注:
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:18537836k +169884k +3612636k = 22GB左右。
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第六行,空行。
第七行以下:各进程(任务)的状态监控,项目列信息说明如下:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

==有shengbang声明的脚本执行时ps能显示脚本名,没有shengbang声明只显示命令==

htop 命令:需从Fedora-EPEL 源安装

|参数|说明|
|—|—|
-d #| 指定延迟时间;
-u UserName|仅显示指定用户的进程
-s COLUME|以指定字段进行排序
子命令:
s|跟踪选定进程的系统调用
l| 显示选定进程打开的文件列表
a |将选定的进程绑定至某指定CPU 核心
t|显示进程树

内存相关

vmstat [options] [delay [count]]

vmstat 2 5 每2s刷新一次刷新5次

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

swampon -s显示提供swamp的分区

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1554412  42580 197048    0    0    53     3  174  951  0  2 98  0  0   

字段含义

procs

  • r :等待运行的进程的个数,和核心数有关
  • b :处于不可中断睡眠态的进程个数( 被阻塞的队列的长度)

memory:

  • swpd: 交换内存的使用总量
  • free :空闲物理内存总量
  • buffer :用于buffer 的内存总量
  • cache :用于cache 的内存总量

swap:

  • si :从磁盘交换进内存的数据速率(kb/s)
  • so :从内存交换至磁盘的数据速率(kb/s)
    io: :
  • bi :从块设备读入数据到系统 的 速率(kb/s)
  • bo: 保存数据至块设备 的 速率

system: :

  • in: interrupts, 中断速率,包括时钟
  • cs: context switch, 进程切换速率

cpu: :

us:Time spent running non-kernel code
sy: 内核空间时间花费
id: cpu空闲时间. Linux 2.5.41 前, 包括IO-wait time.
wa: IO等待时间. 2.5.41 前,包括in idle.
st: Time stolen from a virtual machine. 2.6.11 前, unknown

iostat 统计CPU 和设备IO 信息(每个磁盘读写速率统计)

iostat 1 10 1s刷一次刷新10次停止

pmap [options] pid […]进程对应的内存映射

-x: 显示详细格式的信息
示例:pmap 1 显示init或systemd进程的内存映射

另外一种实现:(pmap读取此文件)

cat /proc/PID/maps

系统监控工具

glances 命令:EPEL源

glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P
password] [–password] [-t refresh] [-f file] [-o output]

内建命令:

a Sort processes automatically l Show/hide logs
c Sort processes by CPU% b Bytes or bits for network I/O
m Sort processes by MEM% w Delete warning logs
p Sort processes by name x Delete warning and critical logs
i Sort processes by I/O rate 1 Global CPU or per-CPU stats
d Show/hide disk I/O stats h Show/hide this help screen
f Show/hide file system stats t View network I/O as combination
n Show/hide network stats u View cumulative network I/O
s Show/hide sensors stats q Quit (Esc and Ctrl-C also work)
y Show/hide hddtemp stats
客户机A:172.16.252.134监控服务器B:172.16.253.182
B机器行执行:
glances -s -B 172.16.253.182

A机器执行:
glances -c 172.16.253.182(指定要监控的ip,即服务端ip)

服务器模式:

glances -s -B IPADDR
IPADDR: 指明监听的本机哪个地址

客户端模式:

glances -c IPADDR
IPADDR 要连入的服务器端地址

dstat [-afv] [options..] [delay [count]] 代替vmstat,iostat

|参数|说明|
|—|—|
-c|显示cpu 相关信息-C #,#,…,total
-d|显示disk 相关信息-D total,sda,sdb,…
-g|显示page 相关统计数据
-m|显示memory 相关统计数据
-n|显示network 相关统计数据
-p|显示process 相关统计数据
-r|显示io 请求相关的统计数据
-s|显示swapped 相关的统计数据
–tcp|
–udp|
–unix|
–raw|
–socket|
–ipc|
–top-cpu|显示最占用CPU 的进程
–top-io|显示最占用io 的进程
-top-mem|显示最占用内存的进程
–top-latency|显示延迟最大的进程

kill [-s signal|-p] [-q sigval] [-a] [–] pid…

向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG 开头(可省略 ),不 区分大小写

 显示当前系统可用信号: kill –l,trap -l

常用信号:man 7 signal

signal|complications
—|—
0)用于检查进程是否在执行
1) SIGHUP|无须关闭进程而让其重读配置文件
2) SIGINT|中止正在运行的进程;相当于Ctrl+c
3) SIGQUIT|相当于ctrl+(quit)
9) SIGKILL|强制杀死正在运行的进程
15) SIGTERM|终止正在运行的进程(正常终止,默认发15)
18) SIGCONT|继续运行
19) SIGSTOP|后台休眠

 按PID :kill [-SIGNAL] pid …

kill –n SIGNAL pid;kill –s SIGNAL pid

按名称:killall [-SIGNAL] comm…

killall -9 bash
killall httpd

按模式:pkill [options] pattern(与pgrep选项类似)

-SIGNAL
-u uid: effective user ,生效者
-U uid: real user ,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l:显示进程 名(pgrep 可用)
-a:显示完整格式的进程名(pgrep 可用)
-P pid: 显示指定进程的子进程

pkill -lu wang 杀死王用户相关的进程
pkill -lt pts/0 杀死终端pts/0的进程

linux作业控制

前台作业
通过终端启动,且启动后一直占据终端;
后台作业
可通过终端启动,但启动后即转入后台运行(释放终端)

让作业运行于后台

  • 运行中的作业: Ctrl+z
  • 尚未启动的作业:# COMMAND &

**后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭
后台作业。如果希望送往后台后,剥离与终端的关系可使用**
nohup COMMAND &

screen;COMMAND

查看所有作业

jobs 只能看到当前终端的进程

作业控制

  • fg [[%]JOB_NUM] :把指定的后台作业调回前台
  • bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行
  • kill [%JOB_NUM] 终止指定的作业

多脚本并行运行

方法1

vi all.sh
f1.sh&
f2.sh&
f3.sh&

方法2

(f1.sh&);(f2.sh&);(f3.sh&)

方法3

{ f1.sh& f2.sh& f3.sh& }

实例

  1. 使用kill 命令实现让httpd服务重新载入配置文件
#找到httpd的父进程
pstree -p |grep httpd
        |-httpd(3226)-+-httpd(3231)
        |             |-httpd(3232)
        |             |-httpd(3233)
        |             |-httpd(3234)
        |             |-httpd(3235)
        |             |-httpd(3236)
        |             |-httpd(3237)
        |             `-httpd(3238)
[260][root@lee: conf]# vim httpd.conf 
[261][root@lee: conf]# mkdir -p /home/www/test
[262][root@lee: conf]# echo 11111 > /home/www/test/index.html
# 发送1信号重载配置
[263][root@lee: conf]# kill -1 3226
  1. 对另一个终端中正在执行的ping命令实现ctrl +C功能
[root@lee: boot]# pgrep -l ping
86735 ping
或者使用pidof查
[363][root@lee: boot]# pidof  ping
86735
[364][root@lee: boot]# pkill ping
[365][root@lee: boot]# pgrep ping
  1. 系统检测到黑客用root用户登录了系统,如何将黑客所登录的终端杀死,并立即对root用户修改密码。
#先改密码
passwd 
#查看root身份登录的终端
[root@lee: boot]# w
 18:52:56 up 21:15,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    172.16.250.153   12:08    3:14   0.03s  0.03s -bash
root     pts/1    172.16.250.153   11:22    6:45m  0.11s  0.11s -bash
root     pts/2    172.16.250.153   12:58    0.00s  0.03s  0.00s w

#查看自己当前使用的终端
[368][root@lee: boot]# tty
/dev/pts/2
#强制下线其他终端
[root@lee: boot]# pkill -9 -t pts/1
[373][root@lee: boot]# pkill -9 -t pts/0
[374][root@lee: boot]# w
 18:54:27 up 21:16,  1 user,  load average: 0.05, 0.03, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/2    172.16.250.153   12:58    0.00s  0.04s  0.00s w
  1. 测试一下sshd进程是否还存活着
pgrep sshd|xargs kill -0
  1. 将hacker用户所开启的进程全部杀死
 pkill -9 -u hacker
  1. 并行执行三个脚本程序
#方法一:写在脚本里:
echo -e 'a.sh&\nb.sh&\nc.sh&' >> test.sh\
#方法二:
(a.sh&);(b.sh&);(c.sh&);
#方法三
{a.sh& b.sh& c.sh&}
  1. 计划每到周日的早上8点定时将服务器重启,如何实现?
echo 0 8 * * * root reboot >> /etc/cron.d/reboot
或者
echo 0 8 * * * reboot|contrab
  1. 查看/bin/rpm命令所依赖的库文件
ldd /bin/rpm
  1. 列举三个常用查看系统负载的命令
uptime
top
htop
iostat
vmstat
  1. 如何将进程置入后台,而且在关闭终端后不退出
nohup COMMAND & 
#screen;COMMAND
  1. 用crontab执行定时任务,写出定时任务,每周三的凌晨1到5点,每十分钟执行一次/bin/backup.sh
echo '*/10 1-5 * * 3 root /bin/backup.sh' >> /etc/cron.d/backup
或者
echo '*/10 1-5 * * 3  /bin/backup.sh' |contrab
  1. linux系统如何查看占用80端口的进程,并统计其进程数,将这些进程杀掉
lsof -i:80
kill -9 pid

你可能感兴趣的:(linux,进程管理)