• Linux中的进程和服务


    十一、Linux中的进程和服务

    11.1、进程

    • 进程:已经启动的可执行程序的运行实例

    • PID: 进程的ID(每个新进程都有一个唯一的PID)

    • PPID: 父进程的ID

    • 任何一个进程都可以创建一个子进程

    • 在redhat 7以上,所有进程的父进程:systemd

      在redhat 5,6中,所有进程的父进程:init

    11.2、ps ---用于显示当前进程状态

    常用选项:

    • -aux:列出所有进程(前面可以不加-,结果一样)

    • -ef:列出所有进程 (最好加-,不加-,结果不一样)

    • -l:列出和当前用户有关的进程

    • -u 用户:查看某一用户的进程状态

    • -aux 或者 -l 的结果中进程的状态:

      运行中:

      • R:该进程正在运行或等待运行

      睡眠:

      • S:正在休眠但是可以被唤醒
      • D:正在休眠,而且不可以被唤醒,该进程被中断,可能会导致设备的异常状态
      • K:正在休眠,而且不可以被唤醒,该进程可以被中断

      已停止:

      • T:进程被停止,但是可以通过其他进程来进行恢复
      • T:正在被调试的进程

      僵停:

      • Z:子进程在退出时向父进程发出信号,除PID外,所有资源全部释放
      • X:父进程获取了子进程的机构,子进程可以完全释放,该状态进程中是看不到的
    • -aux 结果中进程的优先级(大写字母后的小写字母)

      • < 高优先级
      • n 低优先级
      • s 包含子进程
      • + 位于后台的进程组
    • ps -aux 参数详解

      • %CPU:占用的CPU使用率
      • %MEM:占用的记忆体使用率
      • VSZ:占用的虚拟记忆体大写
      • RSS:占用的记忆体大写
      • TTY:终端的次要装置号码(minor device number of tty)
      • STAT:该进程的状态
      • START;进程开始时间
      • TIME:执行的时间
      • COMMAND:所执行的指令
    • ps -j :显示当前作业进程信息

      • TGID:线程组ID
      • SID:会话ID

    11.3、top ---可以查看实时的进程状态

    • top -d 2:2秒刷新一次

    11.4、中断进程

    • 信号:传递给Linux进程的操作
    • kill -l :显示可以传递给Linux进程的所有信号
    • 常用:
      • kill -9 PID :强制杀死一个进程
      • kill -15 PID :正常的方式终止一个进程
      • kill -2 :类似control+c的操作

    11.5、查看端口占用情况

    Linux 查看端口占用情况可以使用 lsofnetstat 命令。

    • lsof 命令

      • lsof(list open files)是一个列出当前系统打开文件的工具。

      • lsof 查看端口占用语法格式:

        • lsof -i:端口号

        • 查看服务器 8000 端口的占用情况:

          lsof -i:8000

      • lsof -i 需要root用户来执行命令,输出各列信息的意义如下:

        • COMMAND:进程的名称
        • PID:进程标识符
        • USER:进程所有者
        • FD:文件描述符,应用程序通过文件描述符识别该文件。如:cwd、txt等
        • TYPE:文件类型,如DIR、REG等
        • DEVICE:指定磁盘的名称
        • SIZE:文件的大小
        • NODE:索引节点(文件在磁盘上的标识)
        • NAME:打开文件的确切名称
      • 更多lsof命令

        lsof -i:8080:查看8080端口占用
        lsof abc.txt:显示开启文件abc.txt的进程
        lsof -c abc:显示abc进程现在打开的文件
        lsof -c -p 1234:列出进程号为1234的进程所打开的文件
        lsof -g gid:显示归属gid的进程情况
        lsof +d /usr/local/:显示目录下被进程开启的文件
        lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
        lsof -d 4:显示使用fd为4的进程
        lsof -i -U:显示所有打开的端口和UNIX domain文件
        

    • netstat 命令

      • netstat -tunlp | grep 端口号 :用于显示 tcp,udp 的端口和进程等相关情况。

        • -t (tcp) 仅显示tcp相关选项
        • -u (udp)仅显示udp相关选项
        • -n 拒绝显示别名,能显示数字的全部转化为数字
        • -l 仅列出在Listen(监听)的服务状态
        • -p 显示建立相关链接的程序名
      • 查看 8000 端口的情况,使用以下命令:

        • netstat -tunlp | grep 8000
      • 更多netstat命令

        netstat -ntlp   //查看当前所有tcp端口
        netstat -ntulp | grep 80   //查看所有80端口使用情况
        netstat -ntulp | grep 3306   //查看所有3306端口使用情况
        
  • 相关阅读:
    ADO连接access和oracle的一个区别
    我的大救星——Oracle APEX 快速Web开发(鼠标点点即可开发出专业级Web应用)
    Sql Server 2008 R2 error:40 错误处理
    我的第一个WPF程序
    开源社会网络分析工具NodeXL介绍
    JavaScript学习笔记1之基础知识点
    JavaScript学习笔记6 之经典神坑题整理
    JavaScript学习笔记2之Tab切换
    变量声明和函数声明会提升到当前作用域顶部
    JavaScript学习笔记5 之 计时器 & scroll、offset、client系列属性 & 图片无缝滚动
  • 原文地址:https://www.cnblogs.com/duncan1863/p/14672438.html
Copyright © 2020-2023  润新知