A multi-process system monitoring tool with both CLI and GUI interfaces.
The project is organized into the following directories:
ConSync Monitor/
├── src/ # Source code
│ ├── core/ # Core monitoring functionality
│ │ ├── cpu.c/h # CPU monitoring
│ │ ├── memory.c/h # Memory monitoring
│ │ ├── system.c/h # System information
│ │ └── user.c/h # User session monitoring
│ ├── gui/ # GUI-related code
│ │ ├── gui.c/h # Main GUI implementation
│ │ └── gui_utils.c/h # GUI utility functions
│ ├── platform/ # Platform-specific implementations
│ │ ├── platform.h # Common platform interface
│ │ ├── platform_linux.c # Linux-specific implementation
│ │ └── platform_mac.c # macOS-specific implementation
│ ├── utils/ # Utility functions
│ │ ├── common.h # Common definitions
│ │ └── error.c/h # Error handling
│ └── main/ # Entry points
│ ├── main.c # CLI entry point
│ └── gui_main.c # GUI entry point
├── scripts/ # Build and run scripts
├── logs/ # Log files
└── build/ # Build artifacts
- C compiler (GCC or Clang)
- For GUI version: GTK+3 development libraries
brew install gtk+3sudo apt install libgtk-3-devsudo dnf install gtk3-develBuild both CLI and GUI versions (if GTK is available):
makeBuild only CLI version:
make cliBuild only GUI version:
make guiBuild the GUI version:
./scripts/compile_gui.sh./system_monitor_cli [options]Options:
--samples=N: Number of samples to collect (default: 10)--tdelay=N: Delay between samples in seconds (default: 1)--system: Display only system information--user: Display only user information--graphics: Enable graphical output in CLI--sequential: Use sequential output mode
./system_monitor_guiOr use the provided run script:
./scripts/run_gui.shFor debugging:
./scripts/run_gui.sh --debug- Real-time CPU usage monitoring
- Memory usage tracking
- System information display
- User session monitoring
- Graphical visualization (in GUI version)
- Multi-process data collection for improved performance
- Linux
- macOS