zoukankan      html  css  js  c++  java
  • strace

    程序是一些保存在磁盘上的指令的有序集合,是静态的。
    进程是程序执行的过程,包括了动态创建、调度和消亡的整个过程,它是程序资源管理的最小单位。
    线程是操作操作系统能够进行运算调度的最小单位

    ps -ef

    strace:跟踪进程内部的系统调用和信号
    1)启动新的进程:strace python sdf.py
    2)附着到已启动的进程上:strace -p pid :看到进程执行时候都调用了哪些系统调用

    root@ip-10-138-0-103:/home/ubuntu/zcy# strace -p 25165
    strace: Process 25165 attached
    select(0, NULL, NULL, NULL, {0, 156808}) = 0 (Timeout)
    write(1, "222 ", 4) = 4
    write(1, "1111 ", 5) = 5
    select(0, NULL, NULL, NULL, {2, 0}) = 0 (Timeout)
    write(1, "222 ", 4) = 4
    write(1, "1111 ", 5) = 5
    select(0, NULL, NULL, NULL, {2, 0}) = 0 (Timeout)
    write(1, "222 ", 4) = 4
    write(1, "1111 ", 5) = 5

    pstack可以看到进程内启动的线程号,每个进程内线程的「堆栈」内容也能看到
    pstack pid

    pstree按树形结构打印运行中进程结构信息
    pstree -p pid


    /proc/pid/environ 包含了进程的可用环境变量的列表
    /proc/pid/cmdline 该文件保存了进程的完整命令行
    /proc/pid/cwd一个符号连接, 指向进程当前的工作目录
    /proc/pid/exe包含了正在进程中运行的程序链接
    /proc/pid/fd/ 这个目录包含了进程打开的每一个文件的链接。从这里可以查看进程打开的文件描述符信息,包括标准输入、输出、错误流,进程打开的socket连接文件描述符也能看到,lsof命令也有类似的作用。
    /proc/pid/mem包含了进程在内存中的内容
    /proc/pid/statm包含了进程的内存使用信息

  • 相关阅读:
    Windows 2008R2 安装PostgreSQL 11.6
    Redis-基础介绍
    SQL Server中的GAM页和SGAM页
    linux读写相关
    String 和 Stringbuild
    JVM(六)如何执行方法调用
    dubbo学习(三)实现细节
    dubbo学习(二)SPI
    spring boot
    MySQL学习(二十一)锁
  • 原文地址:https://www.cnblogs.com/testzcy/p/12638187.html
Copyright © 2011-2022 走看看