系统进程管理

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)
上一篇 2016-09-06 09:38
下一篇 2016-09-06 13:00

相关推荐

  • lvm简要及基本操作

        LVM( Logical Volume Manage,逻辑 逻辑卷管理)LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。  &nbs…

    Linux干货 2016-05-23
  • RAID( Blob3 )

    RAID各级别特性及使用

    2017-11-27
  • 正则表达式

    1:什么是正则表达式: 简单的说,正则表达式就是处理字符串的方法,它是以行为单位进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某特定字符串的处理程序。 2:一些参数: grep [-A] [-B] [–color=auto] ‘收索字符串’ filename -A :后面可加数字…

    2017-07-29
  • Shell脚本编程

    shell脚本编程 Bash为用户提供了编程环境 相对于计算机而言,只能识别二进制文件,因此其所运行的其实是二进制指令,而这些二进制指令我们称之为机器语言,属于低级语言;程序员编程所使用的语言为高级语言,是人们比较容易理解的语言;因此,程序的执行过程:先把源码程序翻译成机器语言(生成可执行的文件),然后解释执行。程序( 程序=指令+数据 )的编程风格有两种:…

    2017-04-14
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]#cp /etc/rc.d/rc.sysinit /tmp/ [root@localhost&nbs…

    Linux干货 2016-07-29