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

 更新时间:2021年09月06日 15:04:54   作者:神慕蔡蔡  
这篇文章主要介绍了Linux运维基础中进程的管理及实时监控控制,有需要的朋友可以借鉴参考下,希望可以有所帮助,共同学习共同进步

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运维进程的资料请关注脚本之家其它相关文章!

相关文章

  • Centos系统中用mock构建rpm的方法

    Centos系统中用mock构建rpm的方法

    这篇文章主要给大家介绍了在Centos系统中用mock构建rpm的方法,文中给出了详细的命令代码,相信对大家的理解和学习具有一定的参考借鉴家价值,有需要的朋友们下面来一起看看吧。
    2016-12-12
  • 解决Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无default.conf文件

    解决Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无d

    这篇文章主要介绍了Centos7安装nginx后提示“Welcome to nginx on Fedora!”,conf.d目录下无default.conf文件 ,本文给出了问题原因解析及解决方法,需要的朋友可以参考下
    2019-07-07
  • Vim中特殊字符的读写详解

    Vim中特殊字符的读写详解

    最近在工作中遇到一个文章,在跨平台工作的时候由于不同编辑器处理换行和空白字符风格不一致, 常常在Vim下会看到一些特殊字符。这些特殊字符的含义可通过digraph-table查询, 也可根据digraph-table或Unicode/ASCII编码手动输入这些特殊字符。下面来一起看看详细的介绍
    2016-11-11
  • Linux如何设置服务自启动

    Linux如何设置服务自启动

    这篇文章主要介绍了Linux中设置服务自启动的三种方式,ln -s 建立启动软连接
    2015-11-11
  • 虚拟机ubuntu16.04无法连网的解决方法

    虚拟机ubuntu16.04无法连网的解决方法

    这篇文章主要为大家详细介绍了虚拟机ubuntu16.04无法连网的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 分享apache http服务器设置虚拟主机的方法

    分享apache http服务器设置虚拟主机的方法

    对于多个域名绑定到一台服务器上,需要进行虚拟主机(virtual host)相关的设置,假设我要设置fuwu.jb51.net到一台服务器上,应该如何做虚拟主机的设置呢?
    2011-08-08
  • Linux修改用户密码使用期限账号到期时间问题

    Linux修改用户密码使用期限账号到期时间问题

    在Linux系统中,通过chage命令能够管理和查看用户密码的使用期限,特别是对root用户的密码过期时间进行设置,chage命令可以设置密码过期时间,提醒用户在密码过期前修改密码,例如,可以设定root用户的密码180天后过期,并在到期前15天提醒用户修改密码
    2024-10-10
  • Ubuntu 安装cuda10.1驱动的实现步骤

    Ubuntu 安装cuda10.1驱动的实现步骤

    这篇文章主要介绍了Ubuntu 安装cuda10.1驱动的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Apache+Weblogic实现URL转发

    Apache+Weblogic实现URL转发

    由于项目部署在Weblogic应用服务器上,用户访问的时候需要加端口号,这就非常的不友好了,所以又架设了Apache,使用URL转发方式来处理这个问题,本文是记录一下方法,给需要的小伙伴参考下
    2014-11-11
  • jmeter 在linux服务器的安装和运行教程图解

    jmeter 在linux服务器的安装和运行教程图解

    本文通过图文并茂的形式给大家介绍了jmeter 在linux服务器的安装和运行的,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07

最新评论