web-dev-qa-db-fra.com

Exécuter un script shell au démarrage ou au démarrage

Mon problème en bref est que je dois exécuter un script chaque fois que j'utilise mon ordinateur, alors j'essaie d'automatiser un peu le processus.

Mon système a la carte vv de nvidia gt540m. La carte est double. Il possède une carte haut de gamme pour les tâches les plus exigeantes et utilise la carte embarquée bas de gamme pour tout le reste.

Ubuntu ne prend actuellement pas en charge ce type de carte vga et les alimente tous les deux à tout moment, en n'utilisant que la carte intégrée.

Cela se traduit par une très faible durée de vie de la batterie.

Je suis plutôt nouveau sur Ubuntu et je devais donc suivre une tonne de tutoriels avant de trouver un script pour résoudre le problème.

J'ai téléchargé un dossier acpi_call dans le répertoire/home/anpel et, avec les commandes suivantes, je tue la carte:

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

La prochaine étape, étant donné que j’ai dû exécuter manuellement les commandes à chaque démarrage, consistait à créer un script Shell sur mon bureau, que j’exécutais et me demandait mon mot de passe. Après quoi, il tue ma carte. Le script ressemble à ceci:

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

Maintenant, j'essaie de faire exécuter ce script à mon système à chaque démarrage de mon ordinateur. Je n'ai donc pas à le faire manuellement à chaque fois.

Je n'ai pas l'expérience de modifier quoi que ce soit à mon système sans au moins quelques conseils, car je pense qu'il est fort probable que je vais tout gâcher, et je ne sais pas comment nettoyer mes dégâts, alors je n'ai pas vraiment essayé quoi que ce soit, mais je suis en train de lire que l’ajout de mon script au fichier /etc/rc.local fera le travail.

Est-ce vrai ou y a-t-il autre chose que je dois essayer?

---- MODIFIER -----

J'utilise Ubuntu 11.10, désolé de ne pas l'avoir mentionné.

7
ppp

Vous pouvez exécuter votre fichier de script en tant qu’application de démarrage (Système - Préférences - Applications de démarrage dans Ubuntu 10.04 LTS - vous ne savez pas où se trouve l’équivalent dans 11.10).

Par exemple, pour exécuter l’utilitaire inosync au démarrage, j’ai ajouté une entrée dans les applications de démarrage avec

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

Le fichier de script bash inosync.sh doit être activé pour s'exécuter. Cela peut être réalisé en utilisant Sudo nautilus dans Terminal, en naviguant dans le fichier, en cliquant avec le bouton droit de la souris et en sélectionnant Propriétés, en accédant à l'onglet Autorisations et en cochant la case "Autoriser l'exécution du fichier en tant que programme".

3
CentaurusA

L'emplacement correct pour les scripts à exécuter au démarrage est d'appeler le script depuis /etc/rc.local

Les commentaires dans le fichier résument:

#!/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.
9
Richard Holloway