参考链接

  • 查看进程的线程数:https://www.cnblogs.com/johnchain/p/3296435.html
  • https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/ps.html

    ps

    查看进程的线程数

    使用ps命令,具体用法是 ps -mq PID
    这样可以看到指定的进程产生的线程数目。

    查看父子进程

  • ps -ef

    查看进程状态

  • ps aux

    进程的5种状态码

  • D 不可中断 uninterruptible sleep (usually IO)

  • R 运行 runnable (on run queue)
  • S 中断 sleeping
  • T 停止 traced or stopped
  • Z 僵死 a defunct (”zombie”) process

    cat

  • 命令:

    1. cat /proc/$PID/status
  • 其中 Threads 对应的数字就是。

    lsof

    查看某个文件被哪些应用程序读写

    1. lsof 文件名

    端口占用

    查看端口占用(这个命令比 netstat 好, 因为可以跨 macos 和 linux):

  1. lsof -i:8000

返回值:

  • COMMAND 为 Google NODE 为 TCP 有 3 行, 这表示 chrome 浏览器通过 TCP 3次握手, 建立了一个 http 链接.
  • 下面的两个 com.docke 表示, docke 分别监听 IPv4 和 IPv6 的两个地址.
    1. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    2. Google 849 yutou 24u IPv4 0x52978fa4191982bb 0t0 TCP 192.168.31.114:62708->192.168.1.133:7892 (SYN_SENT)
    3. Google 849 yutou 40u IPv4 0x52978fa402f7c64b 0t0 TCP 192.168.31.114:62709->192.168.1.133:7892 (SYN_SENT)
    4. Google 849 yutou 49u IPv4 0x52978fa4164b464b 0t0 TCP 192.168.31.114:62712->192.168.1.133:7892 (SYN_SENT)
    5. com.docke 43382 yutou 22u IPv4 0x52978fa3ed21a3a3 0t0 TCP *:7892 (LISTEN)
    6. com.docke 43382 yutou 24u IPv6 0x52978fa427a7cb8b 0t0 TCP localhost:7892 (LISTEN)

进程管理

  1. # 进程管理
  2. ##############################################################################
  3. ps # 查看当前会话进程
  4. ps ax # 查看所有进程,类似 ps -e
  5. ps aux # 查看所有进程详细信息,类似 ps -ef
  6. ps auxww # 查看所有进程,并且显示进程的完整启动命令
  7. ps -u {user} # 查看某用户进程
  8. ps axjf # 列出进程树
  9. ps xjf -u {user} # 列出某用户的进程树
  10. ps -eo pid,user,command # 按用户指定的格式查看进程
  11. ps aux | grep httpd # 查看名为 httpd 的所有进程
  12. ps --ppid {pid} # 查看父进程为 pid 的所有进程
  13. pstree # 树形列出所有进程,pstree 默认一般不带,需安装
  14. pstree {user} # 进程树列出某用户的进程
  15. pstree -u # 树形列出所有进程以及所属用户
  16. pgrep {procname} # 搜索名字匹配的进程的 pid,比如 pgrep apache2
  17. kill {pid} # 结束进程
  18. kill -9 {pid} # 强制结束进程,9/SIGKILL 是强制不可捕获结束信号
  19. kill -KILL {pid} # 强制执行进程,kill -9 的另外一种写法
  20. kill -l # 查看所有信号
  21. kill -l TERM # 查看 TERM 信号的编号
  22. killall {procname} # 按名称结束所有进程
  23. pkill {procname} # 按名称结束进程,除名称外还可以有其他参数
  24. top # 查看最活跃的进程
  25. top -u {user} # 查看某用户最活跃的进程
  26. any_command & # 在后台运行某命令,也可用 CTRL+Z 将当前进程挂到后台
  27. jobs # 查看所有后台进程(jobs)
  28. bg # 查看后台进程,并切换过去
  29. fg # 切换后台进程到前台
  30. fg {job} # 切换特定后台进程到前台
  31. trap cmd sig1 sig2 # 在脚本中设置信号处理命令
  32. trap "" sig1 sig2 # 在脚本中屏蔽某信号
  33. trap - sig1 sig2 # 恢复默认信号处理行为
  34. nohup {command} # 长期运行某程序,在你退出登陆都保持它运行
  35. nohup {command} & # 在后台长期运行某程序
  36. disown {PID|JID} # 将进程从后台任务列表(jobs)移除
  37. wait # 等待所有后台进程任务结束