Kommandos beim Systemstart

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Kommandos beim Systemstart
Hallo,

ich verwende openSuSe 13.1 mit KDE. Ich habe folgendes vor:
Ich will, dass beim Systemstart WLAN und Bluetooth automatisch ausgeschaltet werden. Außerdem soll die Grafik in den sparsamen Modus gehen.

Ich habe mich jetzt selber so weit durchgefummelt, dass ich weiß, dass ich WLAN mit

rfkill block wifi

ausschalten kann und bluetooth dann entsprechend mit „block bluetooth“. Auch das Kommando mit dem ich die Grafik in den sparsamen Modus versetzen kann
habe ich mittlerweile gefunden. Alles was jetzt noch fehlt, ist dass diese Befehle eben automatisch beim Hochfahren ausgeführt werden. Ich dachte erst das kann ja nicht
so schwer sein. Nur, irgendwie hab ich es bislang einfach noch nicht hin bekommen …


https://en.wikipedia.org/wiki/Cron
alternativ

 man 5 crontab 

Du willst wahrscheinlich sowas wie:

PATH=...
@reboot /usr/sbin/rfkill block wifi
...

Mit TLP sollte das gehen. Für die Graka kommts drauf an welchen Treiber du hast.

Edit: Link hinzugefügt.


In den meisten Distributionen gibt es auch noch ein Skript [m]/etc/rc.d/rc.local[/m], das beim Systemstart ausgeführt wird.


Das mit rc.local hatte ich schon versucht! Hat aber irgendwie nicht geklappt. Früher hatte ich debian, da gings glaube ich mit rc.local, nur bei SuSe bislang nicht.

Es funktioniert mit vgaswitcheroo.


Nutzt SOẞE systemd? Und sowas will man ja eigentlich nicht unbedingt mit cron machen.


Was sagt denn [m]systemctl status rc-local[/m]?


Es sagt:

NACHTRAG: ES FUNKTIONIEEEERT !!

Ich hab das Zeug jetzt in boot.local eingetragen. Zumindest gerade eben beim Hochfahren hat s geklappt =D

Noch etwas was mir aufgefallen ist: Wenn ich mit vgaswitcheroo in den sparsamen Modus gewechselt habe, fährt die Kiste nicht mehr richtig herunter.
Beim Herunterfahren bleibt die einfach irgendwann stehen und dann passiert nix mehr. Ich bin mir aber noch nicht so ganz sicher, ob es wirklich mit vgaswitcheroo zusammen hängt, muss ich noch mal nachspüren.
Ich bräuchte eventuell noch was, wo ich eintragen kann was beim herunterfahren genau ausgeführt werden soll, dann könnte ich da wohl rein schreiben, dass die
grafik wieder in den normalen modus gehen soll, dann fährt er vielleicht wieder richtig herunter.

Danke euch!


Hier ist ein Systemd-Script/Service, der eine NVIDIA-Karte beim Herunterfahren wieder anschaltet. Das gleiche kannst du natürlich auch machen (den entspr. Befehl anpassen). Vielleicht löst das ja dein Problem.
https://wiki.archlinux.org/index.php/Bumblebee#Enable_NVIDIA_card_during_shutdown

Ursachenforschung wäre natürlich schöner, aber man hat ja nicht immer für jeden Scheiss Zeit.


Jetzt wo ich das in boot.local eingetragen habe, fährt er auch wieder normal runter. Vielleicht lag s auch an was ganz anderem.

Ich hab noch ne Frage: Ich kann mit vgaswitcheroo zwar in den starken Grafikmodus umschalten, damit das aber wirksam wird, muss ich
(glaube ich) noch das X-Window-System neu starten. Wie kriegt man das jetzt reibungslos über die Bühne?


Da ist es dann wohl am besten, statt der rc.local (oder boot.local bei OpenSuSe anscheinend) ein “ordentliches” Init-Skript zu verwenden. Dazu musst du eine Datei unter [m]/etc/systemd/system/IRGENDWAS.service[/m] mit Inhalt wie unten anlegen und anschließend mit [m]systemctl daemon-reload && systemctl enable IRGENDWAS[/m] laden und aktivieren.

[Unit]
Description=BESCHREIBUNG
Before=display-manager.service

[Service]
Type=oneshot
ExecStart=DEIN KOMMANDO ODER SKRIPTNAME

[Install]
WantedBy=display-manager.service

Aha, das heißt dieser display-manager.service muss aber schon irgendwie da sein?

Und bei DEIN KOMMANDO ODER SKRIPTNAME soll dann der befehl mit vgaswitcheroo rein oder was anderes ?


display-manager.service ist auf meinem System (Fedora) ein Alias für gdm.service. Ich gehe davon aus, dass es bei OpenSuse ein Alias auf kdm.service ist. Wenns das bei dir nicht gibt, kannst du auch direkt kdm.service nehmen.

Ja, bei DEIN KOMMANDO ODER SKRIPTNAME soll das vgaswitcheroo-Zeugs hin.


kdm.service kann ich aber nirgends finden. Wo liegt das dann? Ausgabe von ls in system ist bei mir


Probier mal [m]systemctl list-unit-files[/m] (Liste aller installierten Unit-Files) oder [m]systemctl list-units[/m] (Liste aller Units, die systemd gerade kennt).

Globale Unit-Files liegen in [m]/usr/lib/systemd/system/[/m]. (Btw. falls man an globalen Unit Files etwas ändern möchte, kopiert man das fragliche Unit-File nach [m]/etc/systemd/system/[/m] und macht die Änderungen dort, den dieses Verzeichnis hat Vorrang. Welche Units auf diese Weise überlagert werden, kann man mit [m]systemd-delta[/m] herausfinden.)

https://wiki.archlinux.org/index.php/systemd