zoukankan      html  css  js  c++  java
  • 9 进程管理

    一、进程管理的作用   

      判断服务器健康状态
      查看系统中所有的进程
      杀死进程

    二、进程查看的命令


    1、ps aux (aux之前没有-)
      输出:
      USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
      USER:该进程是由哪个用户产生的;
      PID:进程的 ID 号;
      %CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;
      %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
      VSZ:该进程占用虚拟内存的大小,单位 KB;
      RSS:该进程占用实际物理内存的大小,单位 KB;
      TTY:该进程是在哪个终端中运行的。其中 tty1-tty7 代表本地控制台终端(可以通过alt+F1-F7 键切换不同的终端),tty1-tty6 是本地的字符界面终端,tty7 是图形终端。
      pts/0-255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用的是 pts/0 终端。第二个远程连接占用 pts/1,依次增长。
      STAT:进程状态。常见的状态有:
      R:该进程正在运行
      S:该进程在睡眠状态,可被唤醒
      T:停止状态,可能是在后台暂停或进程在除错状态

      START:该进程的启动时间
      TIME:该进程占用 CPU 的运算时间,注意不是系统时间
      COMMAND:产生此进程的命令名
    2、ps -el

    3、top

    top的一些输出内容:
      load average: 0.00, 0.00, 0.00 (一般认为不应该超过服务器 CPU 的核数。)
      系统在之前 1 分钟,5 分钟,15 分钟的平均负载。
      Tasks: 95 total
      系统中的进程总数
      0 zombie
      僵尸进程(进程已经终止,但是部分程序还在内存当中。)
      99.7%id
      空闲 CPU 的 CPU 百分比

    这个命令输出项比较多,最主要是通过第一行的load average: 0.00, 0.00, 0.00,第三行的99.7%id,第四行和第五行的free判断系统当前的负载。

      让 top 命令只执行一次,让后把结果保存到 top.log 文件中。这样就能看到所有的进程了
      top -b -n 1 >top.log

      4、pstree

         查看进程树


    三、进程管理

      kill -l 查看系统识别的信号,常用的信号有
        1该信号让进程立即关闭,然后重新读取配置文件之后重启。
        9用来立即结束程序的运行. 本信号不能被阻塞、处理和忽略。一 般用于强制终止进程。
      kill +pid

      按照进程名来杀死进程。
        killall +进程名 可以杀死一类或一组


        pkill +进程名

      踢掉某一个远程连接终端
        pkill -9 -t pts/1

    四、工作管理

    1、放入后台
      命令后 &
      ctrl+z(暂停)
      fg 恢复到前台
      bg 恢复到后台

      脱离终端 nohup

      查看后台工作

        jobs -l(显示PID)

    2、系统资源查看
      vmstat     命令监控系统资源 
      demesg   显示开机时内核检测信息 
      free    显示开机时内核检测信息 
      cat /proc/cpuinfo  查看 CPU 信息 
      cat /proc/meminfo  查看内存信息
      w        第一行是top的第一行,查看系统中登录的用户
      who    查看系统中已经登录的用户
      uptime     看到的是top的第一行,显示系统的启动时间和平均负载
      uname -a -r    
      file /bin/ls      判断多少位系统
      lsb_release -a   查看系统版本

    五、定时任务

    1、at:
      at一次性执行定时任务(默认服务是开启的) atd服务开启后at命令才可以执行
      at 的访问控制是依靠/etc/at.allow 文件(白名单,系统默认没有这个文件)和/etc/at.deny 文件(黑名单)这两个文件来实现的如果系统中有/etc/at.allow 文件,那么只有写入/etc/at.allow 文件(白名单)中的用户 可以使用 at 命令,其他用户不能使用 at 命令(/etc/at.deny 文件会被忽略,也就是说同一 个用户既写入/etc/at.allow 文件,也写入/etc/at.deny 文件,那么这个用户是可以使用 at 命令的,因为/etc/at.allow 文件优先级更高。)
      如果系统中没有/etc/at.allow 文件,只有/etc/at.deny 文件,那么写入/etc/at.deny 文件 (黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。
    不过这个文件对 root 用户不生效。
      如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。
    用法:
      at 11:30 回车 touch /abc123 ctrl+D

      atq   查询当前服务器上的 at 工作
      at -c 工作号  显示该 at 工作的实际内容
      atrm [工作号]  删除指定的 at 任务 

    2、crontab
      crontab也是一个服务,默认开启crond
      crontab 命令和 at 命令类似,也是通过/etc/cron.allow 和/etc/cron.deny 文件来限制某些用户是否可以使用 crontab 命令的。而且原则也非常相似
      每个用户都可以实现自己的 crontab 定时任务,只要是使用这个用户身份执行“crontab -e”命令即可,只不过运行命令的用户是其自己。
    用法:
      crontab -e #编辑 crontab 定时任务(命令最好写绝对路径)
    例子:
      1、0 5 * * * #每天5点执行
      2、0 12 * * 1 #每个周一12点执行
      3、30 4 1,15 * * #每个月1号和15号的4点30执行
      4、40 4 * * 1-5 #每个周一到周五的4点40执行
      5、*/10 5 * * * #在5点每隔十分钟执行一次
      6、0 0 1,15 1 #每个月1号或15号或者是周一的0点执行(最好日期和星期不要一起出现)
      7、30 * * * * #每小时第30分执行

       在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都是用绝对路径。

      crontab -l #查询 crontab 任务
      crontab -r #删除当前用户所有的 crontab 任务,如果有多个任务,只想删除一个,可以所以用“crontab -e”

    3、使用配置文件/etc/crontable 可以指定用户身份(只能root来定义)
      vim /etc/crontable 格式
        * * * * * user-name 命令


    4、、anacron
      在关机的时 间段之内有系统定时任务(cron)需要执行,那么这些定时任务是不会执行的,anacron 就是用来解决这个问题的。
      在系统的/var/spool/anacron/ 目录中存在 cron.{daily,weekly,monthly}文件,这些文件中都保存着 anacron 上次执行时的时间。anacron 会去 读取这些文件中的时间,然后和当前时间做比较,若果两个时间的差值超过了 anacron 的指定时间差值(一般是 1 天,7 天和一个月),就说明有定时任务漏掉了没有被执行,这时 anacron 会介入而执 行这个漏掉的定时任务,从而保证在关机时没有被执行的定时任务不会被漏掉。

    用法

    anacron [选项] [工作名] 

    在我们当前的 Linux 中,其实不需要执行任何 anacron 命令,只需要配置好/etc/anacrontab 文 件,系统就会依赖这个文件中的设定来通过 anacron 执行定时任务。那么关键就是/etc/anacrontab 配置文件的内容了

    我们只需要把需要定时执行的脚 本放入 /etc/ cron.{daily,weekly,monthly}目录当中,就会每天、每周或每月执行,而且也不再需要 启动 anacron 服务了。我们如果做修改的话,只用修改/etc/anacrontab 配置文件即可。

    anacron只会检测 /etc/ cron.{daily,weekly,monthly}这些目录有没有漏执行,在特殊情况下可能会用到。

  • 相关阅读:
    用SQL查询方式显示GROUP BY中的TOP解决方法[转]
    三大UML建模工具Visio、Rational Rose、PowerDesign的区别
    Eclipse HTML Editor
    [转]跨平台开发:PhoneGap移动开发框架初探
    取消开机显示登陆页面
    PhoneGap开发环境搭建
    显示器不能全屏及开机慢解决方案
    调用webservice超时问题的解决[转]
    最简单的JAVA解析XML字符串方法
    适用于vue项目的打印插件(转载)
  • 原文地址:https://www.cnblogs.com/baci/p/11390294.html
Copyright © 2011-2022 走看看