• Linux Server简单笔记(第九堂课)之linux下的进程管理和服务优化以及pgrep、结束进程等命令


    9章Linux下的进程管理和服务优化

    Linux下的进程管理和服务优化

    Linux的引导流程

    Linux的运行级别

    管理进程和服务

    Linux引导流程总览(CentOS 5 )

    CentOS 5 的其他系统初始化文件 

     /etc/rc.d/rc.sysinit

    init进程调用执行

    完成设置网络、主机名、加载文件系统等初始化工作

    /etc/rc.d/rc脚本文件

    init进程调用执行

    根据指定的运行级别, 加载或终止相应的系统服务

    /etc/rc.local脚本文件

    rc脚本调用执行

    保存用户定义的需开机后自动执行的命令

    CentOS 6 的Upstart启动方式 

    Upstart启动方式

    RHEL 6.x系统中,采用了全新的Upstart启动方式,大大提高了开机效率。实际上, /sbin/init程序已经改由upstart软件包提供,而不再是SysVinit软件包。

    ⚫ Upstart使用了基于事件(状态变化)的模型,更加符合一个快速、有效的init系统标准:尽 可能启用更少进程、尽可能将更多进程并行启动。而传统的System V初始化采用串行启动, 依次加载各种服务,不仅消耗了许多等待的时间,也难以适应系统状态的改变,比如U盘的 热插拔、文件系统的挂载、蓝牙设备的连接等。

    当然,Upstart仍然保持着对System V模式的向下兼容,因此依旧能够通过运行级别来管理 各种服务,比如使用/etc/rc.d/目录、chkconfig工具等等。Upstart不再使用单一的 /etc/inittab配置文件,而是将各种初始化配置分散存放,并各自响应相关的启动事件。init 程序的配置目录位于/etc/init/,原有的/etc/inittab文件中仅保留默认运行级别的配置。

    CentOS 6 Upstart启动方式

    相关的配置文件

    将各种初始化配置分散存放

    相应相关的启动事件

    init进程(CentOS 5、6) 

    init 进程

    Linux 内核加载运行 /sbin/init 程序

    是系统中第一个进程

    ⚫ PID(进程标记)号永远为1

    Linux系统的运行级别(CentOS 5、6) 

    运行级别

    指运行Linux系统的不同模式

    每种模式对应不同的服务程序组合

    默认的7种运行级别

    ⚫ 0:关机状态

    ⚫ 1:单用户模式

    ⚫ 2:字符界面的多用户模式(不支持网络)

    ⚫ 3:字符界面的完整多用户模式

    ⚫ 4:未分配使用

    ⚫ 5:图形界面的多用户模式

    ⚫ 6:重新启动

    Linux系统的运行级别(CentOS 5、6) 

    查看运行级别

    使用runlevel命令,分别显示:

    切换前的运行级别、当前运行级别

    临时切换运行级别

    使用init命令结合 0-6 的运行级别参数

    inittab文件的结构(CentOS 5、6) 

    /etc/inittab配置文件

    id : runlevels : action : process

    inittab文件的结构(CentOS 5、6) 

    runlevels——运行级别

    inittab文件的结构(CentOS 5、6) 

    CentOS 6 /etc/inittab文件中仅保留默认运行级别的配置

    id : 5 : initdefault :

    Centos7的启动

    第一阶段:硬件启动 

    第二阶段:GRUB2启动引导阶段

    ⚫ boot.img

    ⚫ core.img

    ⚫ *.mod

    ⚫ grub.cfg 

    第三阶段:内核引导阶段

    ⚫ /boot/vmlinuz

    ⚫ /boot/initramfs

    内核初始化

    第四阶段:systemd初始化阶段

    ⚫ /usr/lib/systemd/systemd

    系统服务控制

    常用方式

    ◆ service 服务名称 控制类型

    ◆ /etc/rc.d/init.d 服务名称 控制类型

    ◆ systemctl 控制类型 服务名称

    控制类型

    ◆ start:启动

    ◆ stop:停止

    ◆ restart:重新启动

    ◆ reload:重新加载

    ◆ status:查看服务状态

    ◆ ……

    Linux系统的运行级别

    优化启动过程 

    系统服务管理工具

    ⚫ ntsysv工具

    提供一个交互式、可视化窗口

    可以在字符终端运行

    便于集中管理多个服务

    ⚫ chkconfig工具

    不提供交互式、可视化窗口

    管理单个服务效率更高

    ⚫ systemctl工具

    ◆ Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。

    ◆ Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配 置类UNIX系统。

     

    控制运行级别

    默认运行级别

    设置运行级别

     

    系统服务的启动和控制 

    ntsysv系统服务管理工具

    ⚫ ntsysv

    ⚫ ntsysv --level 级别列表

    例如:

    系统服务的启动和控制 

    查看系统服务的启动状态 

    ⚫ chkconfig --list

    ⚫ chkconfig --list 服务名称

    服务脚本位置:/etc/init.d → /etc/rc.d/init.d

    [root@centos7 ~]# chkconfig --list

    注:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。

    要列出 systemd 服务,请执行 'systemctl list-unit-files'

    查看在具体 target 启用的服务请执行

    systemctl list-dependencies [target]

    netconsole 0:1:2:3:4:5:6:

    network    0:1:2:3:4:5:6:

    例如:

    查看当前服务

    系统服务启动和控制 

    设置系统服务的启动状态

    ⚫ chkconfig --level 级别列表 服务名 on|off

    [root@localhost ~]# chkconfig --level 2345 network on

    [root@localhost ~]# chkconfig --list network

    network 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

    系统服务的启动和控制 

    systemctl管理服务 

    查看所有已激活的服务

    [root@centos7 ~]# systemctl list-units -t service

    查看所有服务

    [root@centos7 ~]# systemctl list-units -t service –a

    查看所有服务的开机自启状态

    [root@centos7 ~]# systemctl list-unit-files -t service

    系统服务的启动和控制 

    systemctl管理服务 

    设定某服务开机启动

    [root@centos7 ~]# systemctl enable name.service

    设定某服务开机禁止启动

    [root@centos7 ~]# systemctl disable name.service

    用来列出该服务在那些运行级别下启用或禁用

    [root@centos7 ~]# ls /etc/systemd/system/*.wants/sshd.service

    查看服务是否开机自启

    [root@centos7 ~]# systemctl is-enabled name.service

    查看服务的依赖关系

    [root@centos7 ~]# systemctl list-dependencies

    程序与进程的关系 

    程序

    ⚫ 保存在硬盘、光盘等介质中的可执行代码和数据

    ⚫ 是静态保存的代码 

    进程

    ⚫ 在CPU及内存中运行的程序代码

    ⚫ 是动态执行的代码

    ⚫ 父、子进程:每个进程可以创建一个或多个进程

    查看进程信息 

    ps命令

     

     

     

    查看进程信息 

    top命令

    用途:查看动态的进程排名信息

    [root@centos7 ~]# top

    查看进程信息 

    pgrep命令 

    用途:根据特定条件查询进程 PID 信息

    [root@centos7 ~]# pgrep -l log

    420 xfs-log/dm-0

    610 xfs-log/sda1

    683 systemd-logind

    691 login

    1063 rsyslogd

    [root@centos7 ~]# pgrep -l -U root -t tty1

    1457 bash

    1797 top

    查看进程信息 

    pstree命令

    用途:以树形结构列出进程信息

    ⚫ pstree属于包psmisc

     

     例如:

    进程的启动方式 

    手工启动

    前台启动:用户输入命令,直接执行程序

    后台启动:在命令行尾加入“&”符号

    [root@centos7 ~]# dd if=/dev/cdrom of=/root/centos7.iso &

    [1] 11856 [root@centos7 ~]# ll -h

    总用量 1.0G

    -rw-------. 1 root root 1.2K 109 19:01 anaconda-ks.cfg

    -rw-r--r-- 1 root root 540M 1020 16:52 centos7.iso

    进程的前后台调度 

    Ctrl+Z 组合键

    将当前进程挂起,即调入后台并停止执行

    [root@centos7 ~]# dd if=/dev/cdrom of=/root/centos7.iso & [1] 11866

    jobs 命令

    查看处于后台的任务列表

    [root@centos7 ~]# jobs

    [1]+ 运行中 dd if=/dev/cdrom of=/root/centos7.iso &

    fg 命令

    将后台进程恢复到前台运行,可指定任务序号

    [root@centos7 ~]# fg 1

    dd if=/dev/cdrom of=/root/centos7.iso

    记录了9109504+0 的读入

    记录了9109504+0 的写出

    4664066048字节(4.7 GB)已复制,39.4173 秒,118 MB/

    终止进程的运行

    Ctrl+C组合键

    中断正在执行的命令

    killkillall命令

    ⚫ kill用于终止指定PID号的进程

    ⚫ killall用于终止指定名称的所有进程

    ⚫ -9 选项用于强制终止

    终止进程的运行 

    pkill命令

    用途:根据特定条件终止相应的进程

    常用命令选项:

    ◆ -U:根据进程所属的用户名终止相应进程

    ◆ -t:根据进程所在的终端终止相应进程

    [root@centos7 ~]# pgrep -l -t tty1

    1457 bash 11867 top

    [root@centos7 ~]# pkill -9 -t tty1

    [root@centos7 ~]# pgrep -l -t tty1 11877 agetty

     

    终止进程

     

     

     

     

     

     

  • 相关阅读:
    1012 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组
    数论笔记
    Codevs 1200 同余方程 2012年NOIP全国联赛提高组
    Codevs 1213 解的个数(exgcd)
    Qbxt 模拟赛&&day-8
    NOIP 模拟赛 那些年,我们学过的文化课 --致已退役的fqk神犇.
    OI路上 day -9
    P3178 [HAOI2015]树上操作
    P3979 遥远的国度
    P4092 [HEOI2016/TJOI2016]树
  • 原文地址:https://www.cnblogs.com/yxd1308243944/p/13915346.html
Copyright © 2020-2023  润新知