Allow setting scheduler & priority from systemd service

This commit is contained in:
desbma
2019-01-13 23:13:23 +01:00
parent c8e17796b5
commit e666629aaa
2 changed files with 17 additions and 9 deletions
+6 -2
View File
@@ -497,11 +497,15 @@ def signal_handler(sig, frame):
def set_high_priority(logger): def set_high_priority(logger):
""" Change process priority to the highest possible. """ """ Change process scheduler and priority. """
# use "real time" scheduler # use "real time" scheduler
done = False done = False
sched = os.SCHED_RR sched = os.SCHED_RR
prio = os.sched_get_priority_max(sched) if os.sched_getscheduler(0) == sched:
# already running with RR scheduler, likely set from init system, don't touch priority
done = True
else:
prio = (os.sched_get_priority_max(sched) - os.sched_get_priority_min(sched)) // 2
param = os.sched_param(prio) param = os.sched_param(prio)
try: try:
os.sched_setscheduler(0, sched, param) os.sched_setscheduler(0, sched, param)
+4
View File
@@ -5,5 +5,9 @@ Description=HDD fan control
EnvironmentFile=/etc/conf.d/hddfancontrol EnvironmentFile=/etc/conf.d/hddfancontrol
ExecStart=/usr/bin/hddfancontrol $HDDFANCONTROL_ARGS ExecStart=/usr/bin/hddfancontrol $HDDFANCONTROL_ARGS
# Scheduler priority
CPUSchedulingPolicy=rr
CPUSchedulingPriority=49
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target