Linux运维基础进程管理实时监控控制

目录
  • 1.后台运行作业
  • 2.使用信号控制进程
    • 基本进程管理信号
  • 3.监控进程活动
    • IO负载
  • 4.实时进程监控
    • top用于实现全屏动态显示系统信息

1.后台运行作业

1.sleep 999 & (运行作业)
[root@localhost ~]# sleep 999 &
[1] 3670
2.ps -ef|grep sleep(查看进程)
[root@localhost ~]# ps -ef|grep sleep
root        3670    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3671    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3672    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3673    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3674    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3675    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3676    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3677    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3678    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3686     950  0 10:54 ?        00:00:00 sleep 60
3.fg(调最后一个)
[root@localhost ~]# fg
sleep 999
4.jobs(查看任务)
[root@localhost ~]# jobs
[1]                sleep 999 &
[3]                sleep 999 &
[4]                sleep 999 &
[6]-               sleep 999 &
[7]+               sleep 999
ctr1+z(Done)完成
5.说明
fg %N (调指定的任务)
stopped(停滞状态)
bg %3 (运行状态)
+(默认操作的)
-(第二个操作的)

2.使用信号控制进程

基本进程管理信号

信号编号ID 短名称 定义名 用途
1 HUP 挂起 让一个进程不用重启就可以重读配置文件,并让新的配置信息生效
2 INT 键盘中断 中断一个前台进程。ctrl+c就是用的SIGINT信号
9 KILL 中断,无法拦截 导致立即终止程序。无法被拦截、忽略或处理
15默认值 TERM 终止 导致程序终止。和SIGKILL不同,可以被拦截、忽略或处理。要求程序终止的友好方式,允许自我清理

kill命令根据ID向进程发送信号。虽其名称为kill,但该命令可用于发送任何信号,而不仅仅是终止程序的信号

1.查看进程
[root@localhost ~]# ps -ef|grep sleep
root        3670    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3672    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3673    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3675    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3676    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3901     950  0 10:59 ?        00:00:00 sleep 60
root        3904    3642  0 10:59 pts/1    00:00:00 grep --color=auto sleep
2.删除指定任务
[root@localhost ~]# kill %1
[root@localhost ~]# ps -ef|grep sleep
root        3672    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3673    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3675    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3676    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3901     950  0 10:59 ?        00:00:00 sleep 60
root        3906    3642  0 11:00 pts/1    00:00:00 grep --color=auto sleep
[1]               sleep 999
3.kill -l(列出所有可以支持的程序)
[root@localhost ~]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
[root@localhost ~]#
4. kill 3672(删除进程)
查看进程
[root@localhost ~]# ps -ef|grep sleep
root        3672    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3673    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3675    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3676    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3925     950  0 11:00 ?        00:00:00 sleep 60
root        4039    3642  0 11:00 pts/1    00:00:00 grep --color=auto sleep
[root@localhost ~]# kill 3672
[root@localhost ~]# ps -ef|grep sleep
root        3673    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3675    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3676    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3925     950  0 11:00 ?        00:00:00 sleep 60
root        4054    3642  0 11:01 pts/1    00:00:00 grep --color=auto sleep
[3]                sleep 99
5.killall sleep(删除所有sleep)
查看进程:[root@localhost ~]# ps -ef|grep sleep
root        3673    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3675    3642  0 10:54 pts/1    00:00:00 sleep 999
root        3676    3642  0 10:54 pts/1    00:00:00 sleep 999
root        4164     950  0 11:01 ?        00:00:00 sleep 60
root        4174    3642  0 11:01 pts/1    00:00:00 grep --color=auto sleep
成功删除[root@localhost ~]# ps -ef|grep sleep
root        4185    3642  0 11:02 pts/1    00:00:00 grep --color=auto sleep

3.监控进程活动

IO负载

负载数属于全局计数器计算,是所有CPU的总和数。

由于从睡眠返回的任务可能会重新调度到不同的CPU,难以精确的每CPU计数,但累计数的准确度可以保障。

显示的平均负载代表所有的CPU。
显示负载值,实施监控

[root@localhost ~]# top

1.查看负载
[root@localhost ~]# uptime
 11:12:36 up 45 min,  2 users,  load average: 0.06, 0.01, 0.20
 2.显示负载值,实施监控
[root@localhost ~]# top
top - 11:15:03 up 47 min,  2 users,  load average: 0.00, 0.00, 0.16
Tasks: 328 total,   1 running, 327 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st
MiB Mem :    804.8 total,     67.5 free,    474.7 used,    262.5 buff/cache
MiB Swap:   2048.0 total,   1427.5 free,    620.5 used.    196.8 avail Mem
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   3884 root      20   0       0      0      0 I   0.3   0.0   0:00.57 kworker+
   4404 root      20   0   64856   4880   4008 R   0.3   0.6   0:00.17 top
      1 root      20   0  245372   7252   4356 S   0.0   0.9   0:03.43 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par+
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker+
      8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_perc+
      9 root      20   0       0      0      0 S   0.0   0.0   0:00.24 ksoftir+
     10 root      20   0       0      0      0 I   0.0   0.0   0:00.35 rcu_sch+
     11 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migrati+
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 watchdo+
     13 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0
     15 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kdevtmp+
     16 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns
     17 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kauditd
     18 root      20   0       0      0      0 S   0.0   0.0   0:00.00 khungta+
     说明按m t l
[root@localhost ~]# top
不显示
按1
显示cpu信息

4.实时进程监控

top用于实现全屏动态显示系统信息

//top命令交互式子命令:
    M   //根据驻留内存大小进行排序,默认根据CPU百分比排序
    P   //根据CPU使用百分比进行排序
    T   //根据累计时间(占据CPU时长)进行排序
    l   //是否显示平均负载和启动时间
    t   //是否显示进程和CPU状态相关信息
    m   //是否显示内存相关信息
    c   //是否显示完整的命令行信息
    q   //退出top命令
    k   //终止某个进程
    1   //显示所有CPU的信息
    s   //修改刷新时间间隔
    us  //表示用户空间;
    sy  //表示内核空间;
    ni  //表示调整nice值,CPU占用的比率;
    id  //表示空闲百分比;
    wa  //表示等待IO完成所占据的时间百分比;
    hi  //表示hard interrupt,硬件中断占据的时间百分比;
    si  //表示软中断占据的时间百分比;
    st  //表示steal,被虚拟化技术偷走的时间(比如运行虚拟机)
PR      //优先级
NI      //nice值
VIRT    //虚拟内存集
RES     //常驻内存集
SHR     //共享内存大小
S       //进程状态

以上就是Linux运维基础进程管理实时监控控制的详细内容,更多关于Linux运维进程的资料请关注我们其它相关文章!

(0)

相关推荐

  • linux进程监控与自动重启的简单实现方法

    目的: linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理: 由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志. crontab修改 # crontab -e */5 * * * * /mnt/bindmonitor.sh /mnt/bindmonitor.sh 的实现 #! /bin/sh host_dir=`echo ~` # 当前用户根目录 proc_name="/home/wkubu

  • linux服务监控及运维

    目录 一, 安装psutil 包 二,找到操作系统中所有的服务的name和pid 三,找到需要监控但没有启动的服务 四,监控服务,如果没有开启则自动开启,[并发邮件通知工作人员] 一, 安装psutil 包 1.1.安装压缩包:以root身份登陆CentOS依次 执行以下命令: wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz 如果wget 下不下来,则直接在浏览器中复制 粘贴链接https://p

  • 详解Linux监控重要进程的实现方法

    不管后台服务程序写的多么健壮,还是可能会出现core dump等程序异常退出的情况,但是一般情况下需要在无 人为干预情况下,能够自动重新启动,保证服务进程能够服务用户.这时就需要一个监控程序来实现能够让服务进程自动重新启动.查阅相关资料及尝试一些方法之后,总结linux系统监控重要进程的实现方法:脚本检测和子进程替换. 1.脚本检测 (1) 基本思路: 通过shell命令(ps -e | grep "$1" | grep -v "grep" | wc -l) 获取

  • Linux运维基础进程管理及环境组成分析

    1.进程基本概述 进程是已启动的可执行程序的运行中实例. /proc目录下以数字为名的目录,每一个目录代表一个进程,保存着进程的属性信息. 每一个进程的PID是唯一的,就算进程退出了,其它进程也不会占用其PID 2.进程的组成部分 已分配内存的地址空间 安全属性,包括所有权凭据和特权 程序代码的一个或多个执行线程 进程状态 3.进程的环境 本地和全局变量 当前调度上下文 分配的系统资源,如文件描述符和网络端口 4.进程状态 标志 内核定义的状态名称和描述 R TASK_RUNNING:进程正在C

  • Shell脚本实现Linux系统和进程资源监控

    在服务器运维过程中,经常需要对服务器的各种资源进行监控,例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出现异常时及时报警,通知系统管理员.本文介绍在Linux系统下几种常见的监控需求及其shell脚本的编写. 文章目录: 1.Linux使用 Shell 检查进程是否存在 2.Linux使用 Shell检测进程 CPU 利用率 3.Linux使用 Shell检测进程内存使用量 4.Linux使用 Shell检测进程句柄使用量 5.Linux使用 Shell查看某个 TCP 或

  • Linux运维基础进程管理实时监控控制

    目录 1.后台运行作业 2.使用信号控制进程 基本进程管理信号 3.监控进程活动 IO负载 4.实时进程监控 top用于实现全屏动态显示系统信息 1.后台运行作业 1.sleep 999 & (运行作业) [root@localhost ~]# sleep 999 & [1] 3670 2.ps -ef|grep sleep(查看进程) [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 s

  • Linux运维基础系统磁盘管理教程

    1.磁盘分区: 2.fdisk分区 磁盘小于2t用fdisk分区,大于2t用gdisk分区 1.查看磁盘情况 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─rhel-root 253:0 0 17.5G 0 lvm

  • Linux运维基础交换分区和lvm管理教程

    目录 1.交换分区SWAP 1.1创建swapfile 1.2格式化swap分区 1.3检测当前swap分区情况 1.4开启新建的SWAP分区 1.5关闭新建的swap分区 1.6给新区增加一个交换分区swap 2. lvm管理 步骤lvm 1.准备物理磁盘(加磁盘参考上一博客) 3.卷组管理 扩展卷组,将新磁盘加入卷组 4.逻辑卷管理 逻辑卷扩展的容量不能超过卷组的容量 对ext4文件系统的逻辑卷裁剪容量 首先自己创建一个1G的逻辑卷作为裁剪的对象 1.如果已经挂载,必须先卸载 2.裁剪容量,

  • Linux运维基础httpd静态网页教程

    目录 1.利用仓库创建httpd lrzsz unzip文件 2.对源码文件进行解压 3.配置httpd-vhosts.conf的3种方法 方法1:(相同IP,不同端口号配置) 方法2:(不同IP,相同端口号配置) 方法3:(相同IP,相同端口号,不同域名) 1.利用仓库创建httpd lrzsz unzip文件 1.挂载 [root@clq0917 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 写配置文件 [root@clq09

  • Linux运维从初级进阶为高级知识点总结

    运维工程师在前期是一个很苦逼的工作,在这期间可能干着修电脑.掐网线.搬机器的活,显得没地位!时间也很碎片化,各种零碎的琐事围绕着你,很难体现个人价值,渐渐的对行业很迷茫,觉得没什么发展前途. 这些枯燥无味工作的确会使人匮乏,从技术层面讲这些其实都是基本功,对后期的运维工作会无形中带来一定的帮助,因为我也是这么过来的,能深刻体会到.所以在这个时期一定要保持积极向上的心态,持续的学习.在未来的某一天,相信会回报给你的! 好了,进入正题,根据我多年的运维工作经验,给大家分享下高级运维工程师学习路线.

  • Linux运维工具Supervisor的安装使用(进程管理工具)

    一.介绍 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启.目前Supervisor可以运行在大多数Unix系统上,但不支持在Windows系统上运行.Supervisor需要Python2.4及以上版本,但任何Python 3版本都不支持. 二.自带Web管理程序 Supervisor有四个组件: 1. supervisord 运行Supervisor的后台服务,它用来启动和管理那些你需要Sup

  • Linux运维之如何使用ss命令代替netstat

    前言 在运维和管理 Linux 服务器的时候,我们最常用的一个命令就是 netstat,我常用这个命令来查看当前服务器上有哪些进程正在侦听端口,主要用来诊断网络服务的工作状态. 不过,最近有一次安装好一个 Ubuntu 发型版,发现默认没有安装 netstat,觉得非常奇怪,自己手动安装后,发现 man pages 提示,netstat 命令已经是 deprecated 了,建议使用 ss 命令代替. This program is mostly obsolete. Replacement fo

  • Linux运维常用命令

    自己的小网站跑在阿里云的ECS上面,偶尔也去分析分析自己网站服务器日志,看看网站的访问量.看看有没有黑阔搞破坏!于是收集,整理一些服务器日志分析命令,大家可以试试! 1.查看有多少个IP访问:  awk '{print $1}' log_file|sort|uniq|wc -l PS: wc -l 看看有多少行 2.查看某一个页面被访问的次数: grep "/index.php" log_file | wc -l 3.查看每一个IP访问了多少个页面: awk '{++S[$1]} EN

  • 详解Linux运维CentOS系统SVN双备份Shell脚本

    前言 SVN是Subversion的简称,是一个开放源代码的版本控制系统,采用了分支管理系统.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的. 作为一个代码管理工具,备份操作显得尤为重要,这里采取这样的备份策略:在执行本地备份的同时,让Shell脚本自动上传数据到另一台FTP备份服务器中,这种异地备份策略成本比较小,无需存储,而且安全系统高,想到与双备份,本地和异地同时出现数据损坏的概率是低很多的. 备份策略说明 使用CentOS 6系列系统,安装vsftpd,修改配置参数.

随机推荐