web-dev-qa-db-fra.com

Obtenir un script à exécuter au démarrage, pas à la connexion

Comment puis-je exécuter un script spécifique (de préférence, pas en tant que superutilisateur) à chaque démarrage de la machine, mais avant la connexion. Ce peut être la dernière chose à exécuter au démarrage. Je veux surtout que le script fonctionne même si aucun utilisateur ne se connecte.

10
Malabarba

Je recommanderais d'utiliser cron. La valeur temporelle spéciale de @reboot générera votre travail à chaque redémarrage en tant qu’utilisateur. Par exemple, exécutez crontab -e et utilisez:

@reboot /home/yourself/bin/some_script_to_run

Pour plus de détails sur les formats d’heure spéciaux, voir man 5 crontab

8
Kees Cook

Une possibilité consiste à utiliser Upstart. Cela vous permet de spécifier quand vous voulez exécuter votre script en termes de dépendances, par exemple. “Lorsque les systèmes de fichiers sont montés et que l'interface réseau eth0 est opérationnelle et en cours d'exécution”. Créez un fichier /etc/init/bruce_script.conf (vous devez créer le fichier en tant que root) contenant quelque chose comme ceci:

description "Bruce's boot script"
start on filesystem and net-device-up IFACE=eth0
task
exec su -c '/home/bruce/script' bruce

Consultez la documentation pstart pour plus d'informations, en particulier la page init(5) pour obtenir une liste de ce que vous pouvez mettre dans ce fichier de configuration.

4
Gilles