Fork me on GitHub

Linux学习笔记11之进程管理和服务管理

进程管理

基本介绍

	1.在Linux中,每个执行的程序都称为一个进程。每个进程都分配一个id号(pid,进程号)

	2.每个进程都可能以两种方式存在。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。

	3。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。

 

显示系统执行的进程

  • 基本介绍

    • ps指令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。

    • pid 进程识别号

    • tty 终端机号

    • time 进程所消耗CPU时间

    • cmd 正在执行的命令或者进程名

    • ps -a 功能:显示当前终端的所有进程信息

    • ps -u 功能:以用户的格式显示进程信息

    • ps -x 功能:显示后台进程运行的参数

  • ps详解

    1. 指令: ps -aux | grep sshd 功能:查看有没有sshd服务

    2. 指令说明:

      • System V 展示风格

      • USER : 用户名称

      • PID : 进程号

      • %CPU : 进程占用cpu的百分比

      • %MEM : 进程占用物理内存的百分比

      • VSZ : 进程占用的虚拟内存大小(单位:kb)

      • RSS : 进程占用的物理内存大小(单位:kb)

      • TT : 终端名称,缩写

      • STAT : 进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-表示正在运行,Z-表示僵死进程,D-表示短期等待,T-表示被跟踪或者被停止

      • STARTED :进程的启动时间

      • TIME : CPU时间,即进程使用CPU的总时间

      • COMMAND :启动进程所用的命令和参数,过长会被截断显示

  • 应用实例

    • 要求: 以全格式显示当前的所有进程,查看进程的父进程。

      ps -ef 是以全格式显示当前的所有进程

      -e 显示所有进程

      -f 全格式

      ps -ef |grep xxx

      • 是BSD风格

      • UID : 用户ID

      • PID : 进程ID

      • PPID : 父进程ID

      • C : CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高

      • STIME :进程启动的时间

      • TTY : 完整的终端名称

      • TIME : CPU时间

      • CMD : 启动进程所用的命令和参数

 

终止进程kill和killal

  • 介绍
    若是某个进程执行一半需要停止时,或者是已经消耗了很大的系统资源,此时可以考虑停止该进程。

  • 基本语法
    kill [选项] 进程号 功能描述:通过进程号杀死进程

    killall 进程名称 功能描述:通过进程名称杀死进程,也支持通配符,在系统因负载过大而变得很慢时很有用。

  • 常用选项
    -9 :表示强迫进程立即停止

  • 应用实例

    • 案例1:踢掉某个非法登录用户

      指令: kill 进程号

    • 案例2 终止远程登录服务sshd,在适当的时侯再次重启sshd服务
      指令:kill sshd对应的进程号

    • 案例3:终止多个gedit
      指令:killall gedit

    • 案例4:强制杀掉一个终端
      指令: kill -9 进程号

 

查看进程树pstree

  • 基本语法
    pstree [选项] 功能:可以更加直观查看进程信息

  • 常用选项
    -p :显示进程的pid

    -u :显示进程的所属用户

  • 应用实例

    • 案例1:以树状的形式显示进程的pid
      指令: pstree -p

    • 案例2:以树状的形式查看进程的用户id
      指令: pstree -u

 

服务(service)管理 重要!!!!

  • 介绍:
    服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如mysqld,ssh,防火墙等 ,因此我们又称为守护进程

  • service管理指令

    • 1.service 服务名 [start|stop|restart|reload|status]

    • 2.在centos7.0以后很多服务不再使用service,而是systemctl

    • 3.service指令管理的服务在 /etc/init.d查看

 

  • service管理指令案例
    • 案例:使用service实例查看启动关闭network

      • 指令: service network start|stop|restart

 

  • 查看服务名

    • 方式1:使用 setup -> 系统服务
      指令:setup

    • 方式2: /etc/init.d 找到 service指令管理的服务
      指令:ls -l /etc/init.d

 

  • 服务的运行级别(runlevel)

    Linux系统有7种运行级别:常用的级别是3和5

    • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

    • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

    • 运行级别2:多用户状态(没有NFS),不支持网络

    • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

    • 运行级别4:系统未使用,保留

    • 运行级别5:X11控制台,登陆后进入图形UI模式

    • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

 

  • 开机的流程说明:

    开机 >> BIOS >> /boot >> systemd进程 >> 运行级别 >> 运行级别对应的服务

 

  • chkconfig指令

    • 介绍

      • 1.通过chkconfig命令可以给服务的各个运行级别设置 自启动/关闭
      • 2.chkconfig 指令管理的服务在 /etc/init.d查看
      • 3.在centos7.0以后,很多服务使用systemctl管理
    • 基本语法

      • 查看服务
        • chkconfig --list [|grep xxx]
        • chkconfig 服务名 --list
        • chkconfig --level 5 服务名 on/off
    • 案例演示

      • 对network 服务进行各种操作
        chkconfig --level 3 network off
        chkconfig --level 3 network on

      • 使用细节:chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效。

 

  • systemctl 管理指令
      1. 基本语法
        systemctl [start|stop|restart|status] 服务名
      1. systemctl 指令管理的服务在/usr/lib/systemd/system查看

 

  • systemctl设置服务的自启动状态

    1. systemctl list-unit-files [|grep 服务名] 功能描述:查看服务开机启动状态,grep可以进行过滤

    2. systemctl enable 服务名 功能描述:设置服务开机启动

    3. systemctl disable 服务名 功能描述:关闭服务开机启动

    4. systemctl is-enabled 服务名 功能描述:查询某个服务是否是自启动的

    • 应用实例:
      • 查看当前防火墙的状况,关闭防火墙和重启防火墙

        • systemctl status firewalld

        • systemctl stop firewalld

        • systemctl start firewalld

 

  • 细节

      1. 关闭或者重启防火墙后,立即生效。 【telnet测试 某个端口即可】
      1. 这种方式只是临时生效,当重启系统后,还是回到以前对服务的设置
      1. 如果希望设置某个服务自启动或综合关闭永久生效,要使用
        systemctl [enable|disable] 服务名

 

  • 打开或者关闭指定端口

 

  • firewall指令
    • 打开端口: firewall-cmd --permanent --add-port=端口号/协议

    • 关闭端口: firewall-cmd --permanent --remove-port=端口号/协议

    • 重新载入,才能生效: firewall-cmd --reload

    • 查询端口是否开发: firewall-cmd --query-port=端口号/协议

    • 应用案例

      • 1.启用防火墙,测试111端口是否能 telnet

        • 不能
      • 2.开放111端口

        • firewall-cmd --permanent --add-port=111/tcp

        • 需要 firewall -cmd --reload

      • 3.再次关闭111端口

        • firewall-cmd --permanent --remove-port=111/tcp

        • 需要 firewall -cmd --reload

 

动态监控进程

  • 介绍
    top与ps命令很相似。它们都用来显示正在执行的进程。top与ps最大的不同之处在于top在执行一段时间可以更新正在运行的进程

  • 基本语法
    top [选项]

  • 选项说明

    -d 秒数 功能:指定top命令每隔几秒更新。默认是3秒

    -i 功能:使top不显示任何闲置或者僵死进程

    -p 功能:通过指定监控进程ID来仅仅监控某个进程的状态

  • 交互操作说明
    P 功能:以CPU使用率排序,默认就是此项

    M 功能:以内存的使用率排序

    N 功能:以PID排序

    q 功能:退出top

  • 应用实例

    • 案例1:监视特定用户

      top:输入此命令,按回车键,查看执行的进程

      u:然后输入"u"回车,再输入用户名,即可

    • 案例2:终止指定的进程

      top:输入此命令,按回车,查看执行的进程

      k:然后输入"k"回车,再输入要结束的进程ID号

    • 案例3: 指定系统状态更新的时间(每隔10秒自动更新)

      top -d 10

 

监控网络状态 (常用指令)

  • 查看系统网络情况:netstat

  • 基本语法 netstat 选项

  • 选项说明
    -an 按一定顺序排列输出

    -p 显示哪个进程在调用

  • 应用案例

    查看服务名为sshd的服务的信息 netstat -anp |grep sshd

  • 检测主机连接命令ping

    是一种网络检测工具,它主要是用于检测远程主机是否正常,或者是两部主机间的网线或者网卡故障

    如: ping 对方ip地址

posted @ 2021-05-22 17:20  Hui_Li  阅读(238)  评论(0编辑  收藏  举报