All notable changes to this project will be documented in this file.
- Average heartbeat count tracking before crashes/resets.
- Child process isolation using
setsid()to prevent signal propagation.
- Heartbeat timing now uses
CLOCK_MONOTONICinstead of wall-clock time to prevent issues with NTP adjustments and system clock changes. - Signal handler variables now use
sig_atomic_tfor safe signal handling. - CPU statistics use
floatinstead ofdoubleto reduce memory footprint. - Separated CPU and memory monitoring into independent functions.
- Static buffer in
printDate()replaced with caller-provided buffer. - Buffer overflow in stats filename generation.
- Child processes now close inherited file descriptors before exec.
- Flexible periodic reboot feature. Supports daily time (
HH:MM) and intervals in hours (h), days (d), weeks (w), and months (m).
- Monitor and log CPU and memory usage for each application.
- CMake support for building the project.
- Refactored code: inlined wrappers, tidied up, and reformatted.
- Modularized code: moved command parsing to
cmd.c, heartbeat functions toheartbeat.c, process control functions toprocess.c, and INI parsing toconfig.c.
- Improved INI format for arrays of processes.
- Updated GitHub Actions for building and testing.
- Improved makefile.
- Enhanced application management: renamed
nWdtAppston_apps, improved start/restart/terminate functionality. - Improved config parsing safety.
- Added support for non-heartbeat processes.
- Updated
test_childto support non-heartbeat processes. - Print unknown commands as hex with safe bounds and printable fallback.
- Quoting in
run.sh. - Reduced test time to 300 seconds.
- Set signal to USR1 for normal exit.
- Log file printing.
- Initial project setup, CI creation, and basic makefile.
- Replaced "ping" with "heartbeat" in code and INI configuration.
- Updated README.md and Makefile.