Führen Sie das Shell-Skript beim Start oder Booten aus


7

Kurz gesagt, mein Problem ist, dass ich jedes Mal, wenn ich meinen Computer benutze, ein Skript ausführen muss, um den Prozess ein wenig zu automatisieren.

Mein System hat die NVIDIA GT540M VGA-Karte. Die Karte ist dual. Es verfügt über eine High-End-Karte für anspruchsvolle Aufgaben und verwendet die Low-End-Onboard-Karte für alles andere.

Ubuntu unterstützt diese Art von VGA-Karte derzeit nicht und versorgt beide jederzeit mit Strom, wenn nur die integrierte Karte verwendet wird.

Dies führt zu einer sehr geringen Batterielebensdauer.

Ich bin ziemlich neu in Ubuntu, daher musste ich eine Menge Tutorials befolgen, bevor ich tatsächlich ein Skript fand, um das Problem zu lösen.

Ich habe einen acpi_call-Ordner in das Verzeichnis / home / anpel heruntergeladen und mit den folgenden Befehlen die Karte getötet:

cd /acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh

Der nächste Schritt, da ich die Befehle bei jedem Start manuell ausführen musste, bestand darin, auf meinem Desktop ein Shell-Skript zu erstellen, das ich ausführe. Es fordert mich zur Eingabe meines Kennworts auf und tötet meine Karte, nachdem ich es bereitgestellt habe. Das Skript sieht folgendermaßen aus:

cd ~/acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh
echo VGA card dead
exit

Jetzt versuche ich, mein System jedes Mal, wenn mein Computer startet, dazu zu bringen, dieses Skript auszuführen, damit ich es nicht jedes Mal manuell ausführen muss.

Ich habe nicht die Erfahrung, irgendetwas an meinem System zu ändern, ohne zumindest eine Anleitung, da ich denke, dass es sehr wahrscheinlich ist, dass ich alles durcheinander bringen werde, und ich habe keine Ahnung, wie ich mein Chaos beseitigen kann, also habe ich es nicht wirklich versucht Alles, aber ich lese gerade, dass das Hinzufügen meines Skripts zur Datei /etc/rc.local die Arbeit erledigen wird.

Ist das wahr oder muss ich noch etwas ausprobieren?

---- EDIT -----

Ich benutze Ubuntu 11.10, tut mir leid, dass ich das nicht erwähne.


Ein anderer Ansatz ist: Versuchen Sie es mit Eisenhaut. Das Problem mit meinem GT555M wurde behoben.
Bohdan_Trotsenko

Ich habe diese Anleitung verwendet und Hummel installiert. Sieht so aus, als hätte dies mein Problem gelöst, obwohl ich sehen muss, wie sich meine Akkulaufzeit in den nächsten Tagen ändert. ivegotavirus.com/blog/2012/01/23/…
ppp

Antworten:


3

Sie können Ihre Skriptdatei als Startanwendung ausführen (System - Einstellungen - Startanwendungen in Ubuntu 10.04 LTS - nicht sicher, wo sich das Äquivalent in 11.10 befindet).

Um das inosyncDienstprogramm beispielsweise beim Booten auszuführen, habe ich einen Eintrag in Startanwendungen mit hinzugefügt

Name=inosync
Command=/home/toaster/inosync.sh
Comment=Mirror DataDisk to Barracuda_01 

Die Bash-Skriptdatei inosync.shmuss für die Ausführung aktiviert sein. Dies kann erreicht werden, indem Sie sudo nautilusin Terminal zur Datei navigieren, mit der rechten Maustaste klicken und Eigenschaften auswählen, zur Registerkarte Berechtigungen wechseln und "Ausführen der Datei als Programm zulassen" aktivieren.


4
Startanwendungen werden beim Anmelden ausgeführt, nicht beim Systemstart.
Richard Holloway

Vielen Dank für diese Klarstellung. Da ich mich beim Booten des Systems immer anmelde, funktionieren Startanwendungen für meine Anwendung einwandfrei.
CentaurusA

9

Der richtige Ort für Skripte, die beim Booten ausgeführt werden sollen, ist das Aufrufen des Skripts von /etc/rc.local

Die Kommentare in der Datei fassen es zusammen:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

Wird es im Stammverzeichnis ausgeführt? Ich meine, wenn sich mein Ordner acpi_call in / home / anpel befindet, muss ich ihn dann nach / root kopieren, damit cd / acpi_call in den richtigen Ordner mit den Modulen gelangt?
ppp

Sie können Ihr Skript an einer beliebigen Stelle platzieren. Warum geben Sie nicht einfach das absolute Verzeichnis acpi_call an?
Abhijeet
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.