envsys

[4] Consumption and monitoring of sensors from the userland is performed with the help of envstat utility through proplib(3) through ioctl(2) against the /dev/sysmon pseudo-device file,[5] the powerd power management daemon that responds to kernel events by running scripts from /etc/powerd/scripts/,[6][7] as well as third-party tools like symon and GKrellM from pkgsrc.

[3]: §7.1  Two levels of limits are defined: critical and warning, both of which additionally extend to an over and an under categorisation.

[3]: §7.1  If limit thresholds are crossed, a kernel event may be generated, which can be caught in the userland by powerd to execute a pre-defined user script.

[8] However, the drivers for the most popular Super I/O chips like lm(4) and itesio(4) do not implement any fan control at all (in fact, historically, in all of OpenBSD, NetBSD and DragonFly, these drivers don't even report the duty cycle of the fans — only the actual RPM values are reported).

Between 2000 and 2007, the manual page for envsys(4) in NetBSD stated that the "API is experimental", and that the "entire API should be replaced by a sysctl(8)", "should one be developed";[11][12] it can be noted that in 2003 this was the exact approach taken by OpenBSD with sysctl hw.sensors when some of the envsys(4) drivers were ported to OpenBSD.