萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 進程控制與 /proc 檔案系統深度解析

/proc 是核心向使用者空間暴露資訊的虛擬檔案系統,透過它可即時查看硬體、核心參數、進程狀態,並動態調整部分核心行為。

/proc 關鍵檔案與查詢指令

檔案/指令用途範例輸出
/proc/version核心版本、GCC 編譯器Linux version 5.15.0-91-generic...
/proc/cpuinfoCPU 型號、核心數、快取、Flagsmodel name : Intel Xeon E5-2680
/proc/meminfo記憶體詳細統計MemTotal: 32GB, MemAvailable: 28GB
/proc/loadavg1/5/15 分鐘負載、執行緒數0.52 0.48 0.45 2/456 12345
/proc/net/dev網路介面收發統計eth0: 1.2GB/850MB
/proc/mounts目前掛載點清單/dev/sda2 / ext4 rw,relatime 0 0
/proc/sys/核心參數可讀寫(sysctl)net.ipv4.ip_forward = 1

進程目錄 /proc/[PID]/ 核心檔案

  • cmdline:啟動命令列(以 null 分隔)
  • environ:環境變數
  • fd/:開啟的檔案描述符符號連結
  • status:狀態、UID/GID、VmRSS、Threads、SigQ
  • limits:資源限制(RLIMIT_NOFILE、RLIMIT_NPROC...)
  • io:I/O 統計(rchar、wchar、syscr、syscw)
  • smaps:記憶體映射詳細佔用(PSS、Swap、Referenced)
  • stack:用戶堆疊(需 root 或同 UID)

日誌系統與常見日誌檔案

檔案記錄內容分析工具
/var/log/syslog / messages系統核心訊息、服務啟動journalctl, grep, awk
/var/log/auth.log / secure認證授權、SSH 登入、sudolast, lastb, aureport
/var/log/kern.log核心專用日誌dmesg -T
/var/log/dmesg開機核心環形緩衝區dmesg -H
/var/log/apt/ 或 yum.log套件管理操作grep install/upgrade
/var/log/nginx/access.logWeb 存取日誌goaccess, awstats

進程控制與信號機制

常用信號對照

信號編號預設動作典型用途
SIGHUP1終止重讀配置(nginx -s reload)
SIGINT2終止Ctrl+C 中斷前景程式
SIGQUIT3核心傾印Ctrl+\ 強制結束並產生 core
SIGKILL9立即終止不可捕捉/忽略,最後手段
SIGTERM15終止優雅關閉,可捕捉清理資源
SIGCHLD17忽略子進程結束通知父進程
SIGSTOP19暫停不可捕捉,Ctrl+Z
SIGCONT18繼續恢復被暫停進程

進程管理實戰指令


# 查看進程樹
pstree -p | head -30

# 依 CPU/記憶體排序
top -o %CPU
htop  # 互動式,支援滑鼠、樹狀、過濾

# 發送信號
kill -TERM 1234      # 優雅關閉
kill -KILL 1234      # 強制殺死
kill -HUP $(cat /var/run/nginx.pid)  # 重載 nginx

# 追蹤系統呼叫
strace -p 1234 -f -e trace=network,file

# 限制資源
prlimit --pid 1234 --nofile=65535:65535

核心參數動態調整


# 臨時生效
sysctl -w net.core.somaxconn=65535
echo 1 > /proc/sys/net/ipv4/ip_forward

# 永久生效
echo "net.core.somaxconn = 65535" >> /etc/sysctl.d/99-custom.conf
sysctl --system

善用 /proc 檔案系統與信號機制,配合 top/htop、strace、perf 等工具,可構建完整的 Linux 進程觀測與控制體系。

copyright © 萬盛學電腦網 all rights reserved