J'ai un script dans un dossier:
/path/to/my/script.sh
J'ai besoin que ce script soit exécuté à chaque démarrage du système (même si personne ne se connecte au système). Que dois-je faire pour que cela se produise?
Vous aurez besoin des privilèges root pour tout ce qui suit. Pour obtenir root, ouvrez un terminal et exécutez la commande
sudo -i
et l'invite de commande changera en "#" pour indiquer que la session du terminal a les privilèges root.
/etc/rc.local
vi /etc/rc.local
avec un contenu similaire à celui-ci:
# This script is executed at the end of each multiuser runlevel
/path/to/my/script.sh || exit 1 # Added by me
exit 0
Créer /etc/init/myjob.conf
vi /etc/init/myjob.conf
avec un contenu comme celui-ci
description "my job"
start on startup
task
exec /path/to/my/script.sh
Créez un nouveau script dans /etc/init.d/myscript
.
vi /etc/init.d/myscript
(Évidemment, il n’est pas nécessaire de l’appeler "myscript".) Dans ce script, faites ce que vous voulez faire. Peut-être que vous exécutez le script que vous avez mentionné.
#!/bin/sh
/path/to/my/script.sh
Rendez-le exécutable.
chmod ugo+x /etc/init.d/myscript
Configurez le système d’initialisation pour exécuter ce script au démarrage.
update-rc.d myscript defaults
Vous n'avez pas besoin de root, ni même de vous connecter.
Vous pouvez éditer votre crontab ( crontab -e
) et créer une entrée comme celle-ci:
@reboot /path/to/script.sh
De cette façon, vous pouvez l'exécuter en tant qu'utilisateur régulier. @reboot
signifie simplement qu'il est exécuté au démarrage de l'ordinateur (pas nécessairement au moment du redémarrage).
depuis le terminal
créer le fichier newshell.sh.desktop
dans le dossier ~/.config/autostart
:
gedit ~/.config/autostart/newshell.sh.desktop
modifiez Exec
, Name
et Comment
value et ajoutez-le au fichier:
première ligne
[Desktop Entry]
Type=Application
Exec=/full/link/to/your/newshell.sh
Name=newshell
Comment=whatever you want
enregistrer
ou
vous pouvez le faire depuis l'interface graphique:
Exec
, Name
et Comment
. Dans votre maison, vous avez un fichier nommé .bashrc. Ce fichier est exécuté à l'ouverture de votre session.
Il suffit de mettre quelque chose comme ceci à la fin du fichier:
sh /path/to/your/script.sh
EDIT: désolé, je n'ai pas répondu à votre question car ma solution est exécutée lorsqu'un utilisateur est connecté ...
Pour exécuter quelque chose avant la connexion, vous pouvez essayer rcconf ou rc-file: lien
Lire d'autres questions sur les étiquettes command-line startup scripts