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

    一、进程的概念与分类

    进程的的基本定义是:在自身的虚拟地址空间运行的一个独立的程序,从操作系统的角度来看,所有在系统上运行的东西,都可以称为一个进程。

    进程的分类:

    系统进程:可以执行内存资源分配和进程切换等管理工作;而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。

     用户进程:通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。

    交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。

    批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。

    守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。

    二、进程的监控与管理

    在linux系统中,进程ID(用PID表示)是区分不同进程的唯一标识,它们的大小是有限制的,最大ID为32768,用UID和GID分别表示启动这个进程的用户和用户组。所有的进程都是PID为1的init进程(centos7.x版本是systemd进程)的后代。内核在系统启动的最后阶段启动init进程,因而,这个进程是linux下所有进程的父进程,用PPID表示父进程。

    1、lsof命令

    作用:列出当前系统打开文件的工具

    格式:lsof 选项 进程pid

    选项:-c 后跟进程名显示进程现在打开的文件

    -p 后跟pid通过进程号显示程序打开的所有文件及相关进程

    -i 后跟端口号通过监听指定的协议、端口、主机等信息,显示符合条件的进程信息。

    -g 后跟pid显示进程的进程情况

    2、ps命令

    作用:查看系统中的进程状态

    格式:ps 选项

    选项:

    -a

    显示所有进程(包括其他用户的进程)

    -u

    用户以及其他详细信息

    -x

    显示没有控制终端的进程

    在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。

    R(运行):进程正在运行或在运行队列中等待。

    S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该   状态。

    D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。

    Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。

    T(停止):进程收到停止信号后停止运行。

    常用选项组合:

    aux:列出目前所有的正在内存当中的程序

    3、pgrep命令

    作用:通过程序的名字来查询进程pid的工具,它通过检查程序在系统中活动的进程,输出进程属性匹配命令行上指定条件的进程的ID

    格式:pgrep 进程名

    4、killall命令

    作用:关闭进程

    格式:killall 选项 进程名称

    选项:-9 :表示强制结束进程

    -2 :表示结束进程,但是并不是强制性的

    -15 :表示正常结束进程

    5、kill命令

    作用:关闭进程

    格式:kill 选项 pid

    选项:-l 查看所有选项

    -9 :表示强制结束进程

    -2 :表示结束进程,但是并不是强制性的

    -15 :表示正常结束进程

    6、top命令

    作用:动态地监视进程活动与系统负载等信息

    格式:top

    命令输出:

    输出解析:第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

    第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

    第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如"97.1 id"意味着有97.1%的CPU处理器资源处于空闲。

    第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。

    第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量

    7、crontab命令

    作用:设置系统定时任务

    格式:crontab 选项

    开启服务:开启:systemctl start crond.service/service crond start

    开机自启:systemctl enable crond.service/chkconfig crond on

    选项:-u user:用来设定某个用户的crontab服务,例如,"-u ixdba"表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。

    file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

    -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

    -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

    -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

    -i:在删除用户的crontab文件时给确认提示。

    操作:进入crontab编辑界面,会使用vim编辑工作。

    * * * * * 执行任务:

    项目

    含义

    范围

    第一个*

    一小时的第几分钟

    0-59

    第二个*

    一天中第几小时

    0-24

    第三个*

    一月中第几天

    1-31

    第四个*

    一年中第几个月

    1-12

    第五个*

    一周之中的星期几

    0-7(0和7均为星期天)

    特殊符号:

    *

    代表任意时间

    代表不连续时间中的分隔符

    -

    代表连续的时间范围

    */n

    代表每多久执行一次

    使用crontab工具的注意事项:

    (1)、注意环境变量问题

    有时我们创建了一个crontab,但是这个任务却无法自动执行,而手动执行这个任务却没有问题,这种情况一般是由于在crontab文件中没有配置环境变量引起的。

    (2)注意清理系统用户的邮件日志

    可以在crontab文件中设置如下形式,忽略日志输出:

    0 */3 * * * /usr/local/apache2/apachectlrestart >/dev/null 2>&1

    (3)、系统级任务调度与用户级任务调度

    系统级任务调度主要完成系统的一些维护操作(比如定时重启机器),用户级任务调度主要完成用户自定义的一些任务,可以将用户级任务调度放到系统级任务调度来完成(不建议这么做),但是反过来却不行。

  • 相关阅读:
    VS-Visual Studio-IIS Express 支持局域网访问
    JAVA和C# 3DES加密解密
    Js调用Java方法并互相传参
    Cannot find SS.INI file for user *** 解决方法
    $.ajax()方法参数详解
    HANA Studio打开系统显示Secure storage is locked
    C#通过ODBC查询HANA数据库数据
    IIS7发布asp.net mvc提示404.0
    CentOS 搭建git服务
    解决用navicat远程连接数据库出现1045 access denied for user 'root'@'localhost' using password yes
  • 原文地址:https://www.cnblogs.com/yxf-/p/11440098.html
Copyright © 2011-2022 走看看