Situation:
Ich rödele Filme vom .ts-Format (in dem zeichnet ein Gerät Mitschnitte von Filmen und ähnlichem) zu mp4 um:
#!/bin/bash
#set -x
if [ -z "$1" ]; then
echo "Welche Datei soll denn umgewandelt werden?" 1>&2
exit 1
fi
inputFile="${1}"
if [ ! -f "$inputFile" ]; then
inputFile="${0}"
if [ ! -f "${inputFile}" ]; then
echo "Die Datei ${inputFile} existiert nicht." 1>&2
exit 2
fi
fi
outputFile=$(echo "${inputFile}" | sed -e 's/\.[^.]*$//').mp4
if [ "$inputFile" = "$outputFile" ]; then
echo "Imput- und Output-Datei müssen sich unterscheiden. Sie können auch keine MP4-Datei in eine MP4-Datei umwandeln." 1>&2
exit 3
fi
echo "ffmpeg -i '${inputFile}' '${outputFile}' wird ausgeführt." 1>&2;
nice -n 19 ffmpeg -i "${inputFile}" "${outputFile}"
if [ 0 -eq $? ]; then
echo "Die Datei '${outputFile}' wurde gespeichert." 1>&2;
else
echo 'Mist. Fehler.' 1>&2;
fi
Dabei ist mir aufgefallen, dass sich ffmpeg
mit vielen Threads (so viele wie die CPU „gleichzeitig“ verarbeiten kann) derart viel Rechenleistung vom Sheduler zog, dass auf dem (eigentlich leistungsfähigem) Notebook (Ryzen 5 5500U) sogar die WLAN-Verbindung abbrach. (Was der Grund für die Untersuchung war: Denn wer SOWAS akzeptiert kann ja auch gleich Windows benutzen...)
Die eigentliche Aktion ist deshalb die Zeile ...
nice -n 19 ffmpeg -i "${inputFile}" "${outputFile}"
in welcher das Programm nice
das eigentliche Programm ffmpeg
maximal „freundlich“ macht, also jede „Oma an der Kasse vorlässt“, mithin also dafür sorgt, dass das System stabil (dazu gehört auch, dass ich weiterarbeiten kann) weiter läuft.
Aber ich halte es für einen Fehler des Distributors, dass ein Anwendungsprogramm den WLAN-Stack derart „abkacken“ lässt.
Frage:
Kann man Programmen unter Linux irgendwo unter /etc/ generell einen nice-Wert (oder ein Äquivalent) zuweisen, mithin diese Situation von Anfang an verhindern?