Ich bin gerade dabei, ein GUI-Frontend dafür zu erstellen xrandr
und brauche einige Befehle, die beim Start ausgeführt werden.
Ich verwende eine .desktop
Datei im ~/.config/autostart
.
Ich kann nicht sagen, ob das funktioniert, da xrandr
es mit meinem Setup nicht funktioniert. Ich weiß, dass alles so funktioniert, wie es soll. Mein System unterstützt es nur nicht. Ich bekomme nur eine Reihe von Xrandr-Fehlern. Das bedeutet auch, dass ich beim Start Fehler bekomme und keine erkennbare Änderung.
Gibt es eine Möglichkeit herauszufinden, ob die Befehle ausgeführt wurden?
Antwort1
Wenn Ihre automatisch gestartete .desktop
Datei ein Skript ist, können Sie einfach ein Steuerungsecho in das Skript einfügen, wie im folgenden Beispiel:
# if yyou want only data saved for one run
echo "Script has run on $(date)" > ~/script.log
# if you want a continous log output append
if [ -e ~/script-log ]
then
echo "Script has run on $(date)" >> ~/script.log
else
touch ~/script.log
echo "Script has run on $(date)" >> ~/script.log
fi
Auf diese Weise können Sie sogar einige variable Daten ausgeben, die Sie möglicherweise für die Steuerung benötigen. Stellen Sie einfach sicher, dass Ihr Endergebnis nach allen Befehlen im Skript gedruckt wird, damit Sie wissen, dass das Skript ausgeführt wurde.
Wenn Sie genau wissen möchten, ob die Befehle in Ihrem Skript fehlgeschlagen sind, können Sie Folgendes tun:
# do this at start of your script
if [ -e ~/script-error.log ]
then
# we do nothing
else
touch ~/script-error.log
fi
# then within your script (I use as example here cd /root just to demonstrate)
# you can do this with nearly all commands
cd /root 2>> ~/script-error.log
Dies würde nur dann erfolgen, wenn einer Ihrer Befehle einen Fehler auslöst. Dies ist sicherlich nicht überall anwendbar, aber immer noch besser, als überhaupt keine Ausgabe zu erhalten.
Erklärung der Verrohrung:
# single piping symbol (overwrite the existing file and creates one if not existant)
> # pipes all output
1> # pipes only success messages
2> # pipes only error messages
# double piping symbol (append to an existing file and fail if file does not exist)
>> # pipes all output
1>> # pipes only success messages
2>> # pipes only error messages
Möchten Sie ausführlicher über Bash-Skripting erfahren, hier zwei Links:
Bash-Leitfaden für Anfänger - Machtelt Garrels - 2008
Erweitertes Bash-Scripting-Handbuch - Mendel Cooper - 2014