Allow setting scheduler & priority from systemd service
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user