zoukankan      html  css  js  c++  java
  • 基于LINUX下的进程管理问题

    什么是进程?

    程序(program)放置在存储媒体中(如硬盘,光盘,软盘,磁带等)为实体文件的形态存在
    进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行的程序

    进程的状态:
    R(Running):该程序正在运行中;
    S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)
    D:不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况。
    T:停止状态(stop),可能是在工作控制(背景暂停)或除错(traced)状态;
    Z(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外

    1.进程的查看命令
    ps -A ##所有进程
    ps -a ##在当前用户环境运行的程序,不包含环境信息
    ps -u ##显示进程用户信息
    ps a ##在当前环境中运行的进程
    ps x ##列出系统中所有运行包含tty输出设备
    ps f ##显示进程的所属关系(父子关系)
    ps e ##显示进程的详细信息(系统资源的调用)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    ps常用组合
    ps aux ##显示系统中的所有进程
    ps ef ##显示进程详细信息并显示父子进程
    ps ax ##显示当前系统的所有进程
    pstree ##显示当前进程的进程树
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    显示进程的指定信息
    ps -o xxx ##显示进程的指定信息
    comm ##进程名称
    user ##进程所有人
    group ##进程所有组
    %cpu ##进程cpu使用率
    %mem ##进程内存使用率
    pid ##进程pid
    nice ##进程优先级
    在这里插入图片描述
    2.进程排序
    ps ax --sort=
    +%cpu|-%cpu
    +%mem|-%mnm

    在这里插入图片描述
    stat中显示的信息
    S ##进程状态
    l ##内存中有锁定空间
    N ##优先级低
    < ##优先级高
    + ##前台运行
    s ##顶级进程
    在这里插入图片描述

    3.进程优先级
    1.进程的优先级范围-20~19
    在这里插入图片描述
    在这里插入图片描述
    2.优先级的查看
    ps ax -o pid,nice,comm
    在这里插入图片描述
    3.指定优先级
    nice -n 优先级数字 进程名称
    在这里插入图片描述
    修改优先级
    renice -n 数字 进程的id
    在这里插入图片描述
    环境中进程的前后台调用
    jobs ##查看被打入环境后台的进程
    ctrl+z ##把占用终端的进程打入后台
    fg jobsnum ##把后台进程调回前台
    bg jobsnum ##把后台暂停的进程运行
    comm & ##让命令直接在后台运行
    在这里插入图片描述
    4.进程信号
    常用信号等级
    1 ##进程重新加载配置
    2 ##删除进程在内存中的数据
    3 ##删除鼠标在内存中的数据
    9 ##强行结束单个进程(不可被阻塞)
    15 ##正常关闭进程(可能被阻塞)
    18 ##运行暂停的进程
    19 ##暂停某个进程(不可被阻塞)
    20 ##把进程打入后台(可以被阻塞)
    man 7 signal ##查看信号的详细信息
    在这里插入图片描述
    kill -信号 进程的pid
    在这里插入图片描述
    在这里插入图片描述
    注意,在这里kill-15可能无法结束掉比较重要的进程,如bash

    killall -信号 进程的名字
    在这里插入图片描述
    pkill -u student -信号
    切换到普通用户关闭vim同时关闭student的shell
    在这里插入图片描述

    5.进程的动态监控
    top 常用的如下:
    1. ##显示cpu每个核的负载
    s ##调整刷新频率
    c ##cpu负载排序
    m ##内存使用量排序
    h ##查看帮助
    u ##查看指定用户进程
    k ##对指定进程发起信号
    q ##退出
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    6.控制服务
    服务:cs模型:
    c:client
    s:server
    定义:系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件,简称服务

    reloda=kill -1,但是有些服务没办法reload,例如网络服务

    
    远程控制命令:
    systemctl	status	sshd	##查看服务状态,inactive(不可用)active(可用)
    systemctl	start	sshd	##开启服务
    systemctl	stop	sshd	##关闭服务
    systemctl	restart	sshd	##重起服务
    systemctl	reload	sshd	##重新加载服务配置(同kill -1相同)
    systemctl	enable	sshd	##设定服务开机启动
    systemctl	disable	sshd	##设定服务开机不启动
    systemctl	list-units	##列出已经开启服务当前当前状态
    systemctl	list-unit-files	##列出所有服务开机启动的状态 disable,enable,static
    systemctl	list-dependencies	##列出服务的依赖
    systemctl	mask sshd		##冻结服务
    systemctl	unmask	sshd		##解冻服务
    systemctl	set-default multi-user,target	##设定系统后启动级别为多用户模式(无图形)
    systemctl	set-dafault graphical,target	##设定系统启动级别为图形模式
    
    

    在这里插入图片描述
    如图,在这里sshd服务时正在运行的
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    来源:https://blog.csdn.net/weixin_42446031/article/details/86498921

  • 相关阅读:
    使用require.context引入模块
    npm link的使用
    mysql 链接远程数据库
    微信错误:errcode=45015, errmsg=response out of time limit or subscription is canceled
    微信公众号发送模板消息
    VS CODE 开发php实现断点调试
    uni 蓝牙 安卓 监听不到返回数据 不可写入
    vue3.0 兄弟组件传值
    二叉查找树的实现和删除
    模块二:ES新特性与TypeScript、JS性能优化
  • 原文地址:https://www.cnblogs.com/datiangou/p/10289784.html
Copyright © 2011-2022 走看看