P.A is a fast, lightweight system monitor for Linux written in C++11 and ncurses. I built it as an alternative to htop, focusing on direct /proc parsing and better handling of process states, zombies, and kernel threads.
- Htop-style UI: Multi-colored bars for CPU (User/Sys/Nice/IRQ) and Memory (Used/Buffers/Cache).
- Accurate network & IO tracking: Properly ignores
PF_KTHREAD(kernel threads) so they don't bleed into network and IO stats. - Filtering & Search: Incremental search (
/) and live advanced filtering (\) to easily isolate specific workloads. - Tree & List views: Toggle between hierarchical process trees and flat lists.
- Process management: Built-in support for sending signals and purging zombies directly from the UI.
- JSON mode: Run
./pa --jsonto get a two-scan live snapshot of the system for scripting.
You just need g++ and the ncurses development headers (libncurses5-dev or ncurses-devel).
git clone https://github.com/Serosh-commits/P.A.git
cd P.A
make
./paF1orhor?: Show helpF3or/: Search for a process by nameF4or\: Filter processes (e.g.,cpu>50,cmd:python)F5ort: Toggle between tree and list viewF6or>or.: Cycle sort column (CPU, Mem, IO, Net)F9ork: Kill selected processF10orq: QuitP: Sort by CPUM: Sort by MemoryN: Sort by PIDI: Invert sort orderz: Show only zombies/orphansx: Purge zombies (sends standard signals to their parents)l: Toggle CSV logging