1. 简介
procps
是一组命令行和全屏实用工具,这些工具从通常位于 /proc
目录的伪文件系统中提取信息。这个文件系统为内核数据结构提供了一个简单的接口。procps
所提供的实用工具主要聚焦于描述系统中运行进程的相关数据结构。
procps
提供了以下实用工具:
free
:报告系统中可用内存和已使用内存的数量hugetop
:报告进程以及整个系统的大页内存使用情况kill
:根据进程 ID(PID) 向进程发送信号pgrep
:根据进程名或其它属性列出进程pkill
:根据进程名或其它属性向进程发送信号pmap
:报告进程的内存映射情况ps
:报告进程信息,包括进程 ID 和资源使用情况pwdx
:报告进程的当前工作目录skill
:pgrep
/pkill
的旧版本slabtop
:实时显示内核 slab 缓存信息snice
:调整进程的优先级sysctl
:在运行时读取或写入内核参数tload
:以图形化方式展示系统的平均负载top
:动态实时查看正在运行的进程uptime
:显示系统的运行时长vmstat
:报告虚拟内存统计信息w
:报告已登录的用户及其正在进行的操作watch
:周期性地执行一个程序,并全屏显示其输出
2. 环境
- Ubuntu 2004 LTS
- procps-ng-4.0.5
- 交叉编译工具:
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- aarch64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.(2) 9.4.0
- aarch64-linux-gnu-g++ (Ubuntu 9.4.0-1ubuntu1~20.04.(2) 9.4.0
3. 编译
先编译依赖项 ncuses,参考《Linux交叉编译ncurses》。
tar xf procps-ng-4.0.5.tar.xz
cd procps-ng-4.0.5
echo "ac_cv_func_realloc_0_nonnull=yes" > aarch64.cache
echo "ac_cv_func_malloc_0_nonnull=yes" >> aarch64.cache
ncurses_install_path=/home/zhangdongyu/repository/cross_compile/ncurses-6.0/ncurses-6.0/install
./configure --host=aarch64 NCURSES_CFLAGS="-I${ncurses_install_path}/include -I${ncurses_install_path}/include/ncurses" NCURSES_LIBS="-L${ncurses_install_path}/lib -lncurses" --prefix=$(pwd)/install --with-ncurses --cache-file=aarch64.cache CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
make -j32
make install