J'ai un script dans un dossier:
/path/to/my/script.sh
J'ai besoin de ce script pour qu'il s'exécute à 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 de privilèges root pour tout ce qui suit. Pour obtenir la racine, ouvrez un terminal et lancez la commande
Sudo -i
et la commande Invite passera à '#' indiquant que la session de terminal dispose des privilèges root.
/etc/rc.local
vi /etc/rc.local
avec un contenu comme 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éez /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, cela ne doit pas nécessairement s'appeler "myscript".) Dans ce script, faites ce que vous voulez. Peut-être juste lancer 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 init 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).
du terminal
créer le fichier newshell.sh.desktop
dans le dossier ~/.config/autostart
:
gedit ~/.config/autostart/newshell.sh.desktop
changer Exec
name__, Name
et Comment
valeur et ajouter 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____, Name
et Comment
name__.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: http://www.debianadmin.com/manage-linux-init-or-startup-scripts.html