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端口使用情况
      
上一篇:windows / linux系统中,端口被占用解决方法


下一篇:【linux】循序渐进学运维-基础篇-netstat命令详解