系统进程管理

ps 查看系统进程命令

启动进程的方式:
    系统启动过程中自动启动:与终端无关的进程;
    用户通过终端启动:与终端相关的进程;

选项:    
    a:所有与终端相关的进程;
    x:所有与终端无关的进程;
    u:以用户为中心阻止进程状态信息显示;
常用组合之一:aux
[root@centous1 zuoye]# ps auxUSER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  19364  1536 ?        Ss   16:50   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    16:50   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    16:50   0:00 [migration/0]
root          4  0.0  0.0      0     0 ?        S    16:50   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S    16:50   0:00 [stopper/0]
root          6  0.0  0.0      0     0 ?        S    16:50   0:00 [watchdog/0]
root          7  0.0  0.0      0     0 ?        S    16:50   0:00 [migration/1]
root          8  0.0  0.0      0     0 ?        S    16:50   0:00 [stopper/1]


VSZ:虚拟内存集;
RSS:Resident Size(常驻内存);
STAT:
    R:running
    S:interruptale sleeping(可中断睡眠)
    D:uninterruptable sleeping(不可中断睡眠)
    T:Stopped
    Z:zombie(僵尸进程)
    
    +:前台进程
    l:多线程进程
    N:低优先级进程
    <:高优先级进程
    s:session leader(进程的最开头进程)
    
    -e:显示所有进程
    -f:显示完整格式的进程信息
    
    常用组合之二 -ef:
    
    -F:显示完整格式的进程信息;
        C:cpu utilization(cpu占用率)
        PSR:运行在哪颗CPU之上
    -H:以层级结构显示进程的相关信息;
    
    常用组合之三:-eFH

pgrep,pkill,top命令:

根据进程名或其他属性来查询进程或发送信号

pgrep -t terminel : 与指定的终端相关进程
    -l:显示程序名    -a:显示完整格式的进程名;    -p pid:显示此进程的子进程    也可以直接加字符串,查看包含字符串的进程
    
pidof命令:
    根据进程名,取其pid
    
top命令:
    -display linux process
[root@centous1 zuoye]# toptop - 22:02:39 up  5:12(运行时长),  1 user,  load average(平均负载): 0.07, 0.06, 0.01(队列的长度不要超过CPU个数)
Tasks(任务): 129 total,   1 running, 128 sleeping,   0 stopped,   0 zombie(僵死)
Cpu(s):  0.0%us(用户空间进程占据的百分比),  0.1%sy(内核占用),  0.0%ni(用于nice调整), 99.8%id(空闲),  0.0%wa(等待IO),  0.0%hi(硬件中断),  0.1%si(软件终中断),  0.0%st(被虚拟化偷走的)
Mem:   1004348k total,   192132k used,   812216k free,    21320k buffers
Swap:   204796k total,        0k used,   204796k free,    85156k cached
uptime命令:显示系统时间、运行时长及平均负载;
    过去一分钟、五分钟和十五分钟的平均负载;
    等待运行的进程队列的长度;

htop命令;

选项:
    -d num:指定延迟时间间隔;    -u UserName:仅显示指定用户的进程    -s COLUME: 以指定字段进行排序;子命令:
l:显示选定的进程打开的文件列表
s:跟踪选定的进程系统调用;
t:以层级关系显示各进程状态;
a:将选定的进程绑定至某指定的CPU核心;

vmstat查看虚拟内存的使用情况;

vmstat 2:以2秒为间隔,不断刷新
vmstat 2 3 : 以2秒为间隔,刷新三次

procs:
    r:等待运行的进程的个数;CPU上等待运行的任务的队列长度
    b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;
    swpd:交换内存使用总量;
    buffer:用于buffer的内存总量;
    cache: 用于cache的内存总量;
    
swap
    si:数据进入swap中的数据速率(kb/s)
    so:数据离开swap的速率(kb/s)
io
    bi:从块设备读入数据到系统的速度(kb/s)
    bo:保存数据至块设备的速率(kb/s)
system
    in:interrupts,中断速率;
    cs:context switch,上下文切换的速率;

dstat命令:

常用选项:
    
    -c 显示CPU相关信息;    -d 显示磁盘的相关信息        -D sda,sdb...    -g:显示page的相关的速率数据;    -m:Memory的相关统计数据;    -n:Lnterface的相关统计数据;    -p:显示process的相关统计数据;    -r:显示io请求的相关统计数据;    -s:显示swapped的相关统计数据;

glances命令

内部选项;
常用选项:
    -b:以Byte为单位显示网上数据速率;    -d:关闭磁盘I/O模块    -m:关闭mount模块;    -n:关闭network模块;    -t #:刷新时间间隔;    -1 :每个CPU的相关数据单独显示;    -o{HTML|CSV}:输出格式;    -f /PATH/TO/SOMEDIR :设定输出文件的位置C/S模式下运行glances命令:
    服务模式:
        glances -s -B IPADDR
        
        IPADDR:本机的某地址,用于监听;
    客户端模式:
        glances -c IPADDR
        ipADDR :是远程服务器地址;

kill命令:

常用命令:    1)SIGHUP:无须关闭进程而让其重读配置文件;    2)SIGINT:终止正在进行的进程,相当于ctrl+c    9)SIGKILL:杀死运行中的进程    15)SIGTERM:终止运行中的进程;
    killall 可以把一个进程的全部进程关掉;

Liunx系统作业控制:

job:

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

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

如何让作业运行于后台?

(1)运行中的作业

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

(2)尚未启动的作业

#COMMAND &
注意:此类作业虽然被送往后台,但其依然与终端相关(意思是如果终端终止,那么从终端开启的后台也会终止);如果希望把送往后台的作业剥离与终端的关系:#nohup COMMEND &(转为与终端无关的模式)

作业前边有加减号的显示,“+”的意思就是可以用fg命令后便不用接参数直接调回来。“—” 不如“+”优先级高

查看所有作业:

#jobs

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

#fg[[%]JOB_number]:把指定的作业调回前台%可以省略

#bg[[%]JOB_number]:让送往后台的作业在后台继续运行 %可以省略

#kill[%JOB_number]:终止指定的作业%不能省略,因为省略了就成了进程ID号了不是作业号。

调整进程优先级: 可通过nice值调整的优先级范围:100-139 进程启动时,其nice值默认为0,其优先级是120;

nice命令; 以指定的nice值启动并运行命令 nice[option][command]参数… -n 指定nice值 注意:仅管理员可调低nice值

renice命令(调整已经启动的进程):

renlice -n -3 进程ID

查询进程优先级 ps axo pid,comm,ni,priority | grep htop

本地电子邮件服务:

smtp:slmple mail transmission protocol 只能接收邮件
pop3:post Office procotol 用来接收邮件
imap4:Internet mail access procotol 用来接收邮件

mail命令:

mailx [-s 'SUBJECT'] username [@hostname](hostname如果是本地则不用写)
邮件正文的生成:
(1)交互式输入:单独成行表示正文结束;curl+d提交即可;
(2)通过输入重定向
(3)通过管道;

at命令

at [option]...TIME
    
    TIME:
        HH:MM:SS [YYY-mm-dd]
        noon(中午十二点),midnight(半夜十二点),teatime(下午茶时间下午四点)

常用选项:
    -l:查看任务队列    -f /PATH/FROM/SOMEFEIL:从指定文件中读取任务,不用交互式输入了    -d:删除(加上任务号)    -c:查看指定作业的具体内容    -q QUEUE:指明队列;

注意:作业执行结果是以邮件发送给提交作业用户;

向crond提交作业的方式不同于at,他需要使用专用的配置文件,此文件有固定格式,不建议直接使用文件编辑器来编辑此文件;要使用crontab命令;

cron任务分为两类:
    系统cron任务:主要用于实现系统自身的维护;用户cron任务:
    命令:crontab命令

系统cron的配置格式: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

(1)每一行定义一个周期性任务:    * * * * * :定义周期性时间
    user-name:运行任务的用户身份
    command to be executed:任务
(2)此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者自定义变量;
(3)执行结果邮件发送给MAILTO指定的用户

用户cron的配置格式: /var/spool/cron/USERNAME

SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

(1)每行定义一个cron任务,共6个子弹;

(2)此处的环境变量不同于用户登录后的环境,因此,建议命令使用绝对路径,或者自定义PATH环境变量;

(3)邮件发送给当前用户;

时间表示法:

(1)特定值;
    给定时间点有效取值范围内的值;
    注意:day of week和day of mouth不同时使用
(2)给定时间点上有效取值范围的所有值;
*代表的含义:分钟、小时、天、月、星期几
示例:
(1)3 * * * *:每小时执行一次;每小时的第三分钟;
(2)3 4 * * 5:每周执行一次;每周5的4点3分;
(3)5 6 7 * *:每月执行一次;每月的7号6点5分;
(4)7 8 9 10 *:每年执行一次;每年的10月9号8点7分;
(5)9 8 * *3,7:每周三和周日8点9分
(6)0 8,20 * * 3,7:没周三和周日的8点和20点
(7)0 9-18 * * 1-5:周一到周五的9-18点
(8)*/5 * * * *:每5分钟执行一次任务(指定时间点不能被步长整除时,其意义将不复存在最小时间单位为“分钟”,想完成“秒”级人物,的需要利用脚本实现);

crontab命令:
    
    crontab -e:编辑任务;
    crontab -l:列出所有任务
    crontab -r:删除所有任务;即删除 /var/spool/cron/USERNAME文件
    crontab -u username:可以给别的用户定义定时任务
注意:运行结果以邮件通知给用户;如果拒绝接收邮件:
(1)COMMAND > /dev/null

注意:定义COMMEND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义;

思考:某任务在指定的时间因关机未能执行,下次开机会不会执行?
不会
如果期望时间因故未能按时执行,下次开机后无论是否到了响应时间点都要执行一次,可用anacron实现;

traceroute 目标IP :可以显示从源主机到目标主机所经过的网关;

原创文章,作者:forest,如若转载,请注明出处:http://www.178linux.com/43726

(0)
forestforest
上一篇 2016-09-06
下一篇 2016-09-06

相关推荐

  • 数组、变量及bash的配置

    数组、变量及bash的配置 变量:存储单个元素的内存空间 数组:存储多个元素的内存空间,相当于多个变量集合 索引:编号从0开始,属于数值索引,索引为自定义格式即为关联数组(bash4.0之后支持) bash数组支持稀疏格式 数组的声明 普通数组declare –a 关联数组 declare –A 普通数组可以不声明直接使用,关联数组必须先声明再使用 数组的赋…

    Linux干货 2016-08-26
  • Linux启动之grub详解,故障排除,自建linux

    概述     上篇我们以CentOS6为例介绍了一下系统启动流程,本篇将承接上篇,详细的介绍一下系统启动流程中的grub,以及系统启动过程中的各种故障的排除,以及利用现有内核自己构建一个能够正常启动的简单Linux系统。具体分为一下几个部分:     1、grub相关概念详解 &…

    Linux干货 2016-09-13
  • N26-第二周

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示;   1)alias:命令别名;     # alias ;获取所有可用别名的定义;     # alias NAME=‘COMMAND’:定义别名;    &nbs…

    Linux干货 2017-02-11
  • ​ 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限;     cp -a /etc/skel /home/tuser1     chmod -R 7…

    Linux干货 2016-10-17
  • 创建私有CA及dropbear的编译安装

    使用openssl创建私有CA 配置文件/etc/pki/tls/openssl.cnf certs           = $dir/certs         &nb…

    Linux干货 2016-09-26
  • 硬链接与软链接

    引言: 链接,一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。 Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。 Inode译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。 Block:存放档案内容数据的地方。 &n…

    Linux干货 2016-10-20