From d1e8cdf8358d8a2694ab042ac2492afa9d296916 Mon Sep 17 00:00:00 2001 From: desbma Date: Mon, 1 Dec 2014 19:43:08 +0100 Subject: [PATCH] Increase process niceness at startup to improve reactivity in extreme load situations --- hddfancontrol/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hddfancontrol/__init__.py b/hddfancontrol/__init__.py index 0a03cb6..e71253d 100755 --- a/hddfancontrol/__init__.py +++ b/hddfancontrol/__init__.py @@ -408,6 +408,19 @@ def main(drive_filepaths, fan_pwm_filepaths, fan_start_values, fan_stop_values, interval_s, spin_down_time_s, stat_filepaths): logger = logging.getLogger("Main") try: + # renice to "real time" priority + target_niceness = -19 + previous_niceness = os.nice(0) + delta_niceness = target_niceness - previous_niceness + try: + new_niceness = os.nice(delta_niceness) + except PermissionError: + new_niceness = previous_niceness + if new_niceness != target_niceness: + logger.warning("Unable to renice process to %d, current niceness is %d" % (target_niceness, new_niceness)) + else: + logger.info("Process reniced from %d to %d" % (previous_niceness, new_niceness)) + # register signal handler signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler)