美文网首页Linux小推车
Linux(十一):进程管理

Linux(十一):进程管理

作者: 末池桑 | 来源:发表于2019-08-12 23:52 被阅读0次

    使用 Windows 时,经常会出现莫名其妙程序卡死无响应的状态,这个时候我们都需要调出任务管理器来强制终止进程,这其实就是 Windows 下的一个进程管理办法。相对的 Linux 下也有进程管理,面对服务器黑压压的命令行界面,我们没法像 Windows 一样调出一个 UI 界面来管理进程,所以熟练掌握 Linux 下的进程管理命令是非常重要的。

    一、显示当前系统进程

    • 1. 使用 ps 命令即可打印出相关进程信息,相关命令内容和参数如下:
     PID :进程识别号
     TTY :终端机号
     TIME:此进程消耗的 CPU 时间
     CMD :正在执行的命令或者进程名
    
    • 2. ps 命令常用参数内容如下:
    # 一般我们都会使用 ps -aux |more 命令查看进程信息
    -a  : 显示当前终端的所有进程信息
    -u  : 以用户的格式显示进程信息
    -x  : 显示后台进程运行的参数
    

    其中第一行每一列的详细信息分别如下:

    USER :  用户名
     PID :  进程号
    %CPU :  进程占用 CPU 百分比
    %MEM :  进程占用物理内存百分比
     VSZ :  进程占用虚拟内存大小(KB)
     RSS :  进程占用的物理内存大小(KB)
     TTY :  终端名称
    STAT :  进程状态(S-睡眠,s-表示该进程是回话先导进程,R-正在运行,D-等待运行,
             N-表示进程有比普通进程优先级更低的优先级,Z-僵死进程,T-被跟踪or被终止等待)
    START:  进程启动时间
    TIME :  进程使用 CPU 的时间
    COMMAND : 启动进程时所用的命令和参数,过长会被截断显示
    
    • 3. 全格式的形式显示当前所有进程
    ps -ef 
    -e:  显示所有进程
    -f : 全格式显示
    UID :用户名
    PID :进程号
    PPID :父进程号
    C :  CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,
          执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高。
    STIME :进程启动的时间
    TTY :  终端名称
    TIME : CPU时间
    CMD :  启动进程时所用的命令和参数
    

    二、终止进程

    • 1. kill 和 killall 命令可以用来杀死进程,命令详细内容如下:
    # 通过进程号杀死进程
    kill PID 
    # 强制杀死进程
    kill -9 PID 
    # 通过进程名可以杀死多个进程
    killall 进程名
    

    三、进程树

    pstree 命令可以调出进程树,以便更直观的看到进程信息,命令详情如下:

    # 显示进程树
    pstree   
    -p :显示进程 ID
    -u :显示进程所属用户
    
    pstree -pu

    四、服务管理

    服务的本质其实就是后台运行的进程,一般都会监听某个端口,等待其他程序发送过来的请求, 例如:MySQL、Web服务、Ngnix、防火墙等,这些其实都是运行在计算机后台的程序,也称守护进程。

    • 1. service 指令详情如下:
    # 启动 mysql 服务
    service mysql.server start
    # 停止mysql 服务
    service mysql.server stop
    # 重新启动 mysql 服务
    service mysql.server restart
    # 查看 mysql 服务状态
    service mysql.server status
    # 启动 mysql 服务
    service mysql.server reload
    

    注: CentOS 7之后,不再使用 service ,而是 systemctl

    • 2. 查看服务名
      进程服务文件都存在了 /etc/init.d 目录下,使用如下命令即可看到所有的服务名:
    ls -l /etc/init.d
    

    五、运行级别

    • 1. CentOS 6 有 7 个运行级别,详细如下(3、5级别是常见的):
    0 : 系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
    1 : 单用户工作状态,root 权限,用于系统维护,禁止远程登陆
    2 : 多用户状态(没有 NFS),不支持网络
    3 : 完全的多用户状态(有 NFS),登陆后进入控制台命令行模式
    4 : 系统未使用,保留
    5 : X11 控制台,登陆后进入图形 GUI 模式
    6 : 系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动
    

    Linux 开机全过程:
    开机 > BIOS > /boot > init 进程 > 运行级别 > 运行级别对应的服务

    • 2. chkconfig 指令
      chkconfig 命令可以给每个服务在不通运行级别下设置自启动或者关闭,指令详细内容如下:
    # 查看服务
    chkconfig --list  
    # 按服务名查看某个服务启动状态
    chkconfig --list |grep ssrmu
    chkconfig ssrmu --list 
    

    修改服务自启动状态,可以使用如下命令:

    # 所有级别下 打开/关闭 serviceName 服务自启动
    chkconfig sevicrName on/off
    # 打开/关闭 serviceName 服务在 int 运行级别下的自启动
    chkconfig --level int serviceName on/off
    

    六、查看OS版本

    不同的os发行版可能会有略微的差别,配置文件位置以及命令可能有所区别,这里提供查询OS版本的命令。

    cat /etc/issue
    cat /proc/version
    uname -a 
    uname -s
    

    七、动态监控进程

    • 1. 使用 top 命令便可以动态的监控进程状态,top 和 ps 最大的区别就在于此,top 每隔一段时间会刷新正在运行的进程,并且可以做相关操作,命令参数详细如下:
    -d int : 指定 top 命令
    -i  : 使 top 不显示任何闲置或者僵死进程
    -p : 指定 PID 来监视某个进程的状态
    
    • 2. top 命令交互操作按键:
    P     以 CPU 使用率排序(默认)
    M     以内存使用率排序
    N     以 PID 排序
    q     退出top
    K     按 k 键可以输入 PID 杀死进程
    

    八、查看系统网络情况

    • 1. 使用 netstat 可以查看当前的网络情况,命令详情如下:
     # 查看网络详情
    netstat -anp
    -an :按一定顺序排列输出
    -p  :显示哪个进程在调用
    -t  :和 tcp 有关 
    -d  : 和 udp 有关
    
    • 2. 使用 netstat -anp |grep electron-ssr 组合命令可以查看某个进程的网路情况,结果去下图:

    九、后台运行进程

      1. &
        在命令的最后面加入这个符号,此命令便会在后台执行
      1. ctrl + z
        将一个终端执行的命令挂起放到后台,此时这个命令(程序)是处于暂停状态的,不可以执行。
      1. jobs
        查看当前有多少后台执行的命令,jobs -l 可以显示命令的 PID 。
      1. fg
        将后台中的命令调至前台继续运行,假若有多个后台运行的命令,可以使用 fg int 来将相应的命令调出到终端,int 值是使用 jobs 命令时的序号(非 PID)。
      1. bg
        将一个在后台暂停的命令,变成继续执行 (在后台执行),假若有多个后台运行的命令,可以使用 bg int 来将相应命令放到后台执行,int 值是使用 jobs 命令时的序号(非 PID)。

    注:先 ctrl + z 将命令挂起到后台,再使用 bg 就可以让其继续在后台执行,使用 fg 又可以在终端执行。

      1. ctrl + c
        命令执行中途,可以中断命令的执行。
      1. ctrl + \
        退出命令
      1. ctrl + d
        退出终端,作用相当于在终端中输入exit后回车
      1. ctrl + s
        中断控制台输出
      1. ctrl + q
        恢复控制台输出
      1. ctrl + l
        清屏,相当于 clear

    相关文章

      网友评论

        本文标题:Linux(十一):进程管理

        本文链接:https://www.haomeiwen.com/subject/gjartctx.html