Bash Script au démarrage? (Linux)


12

Existe-t-il un moyen de créer / exécuter un script bash au redémarrage (comme dans Debian / Ubuntu par exemple, car c'est ce que mes 2 boîtes à la maison ont)

En outre, des guides recommandés pour effectuer des tâches cron? Je suis complètement nouveau pour eux (mais ils seront d'une grande utilité)

Réponses:


21

Sur Ubuntu / Debian / Centos, vous pouvez configurer un travail cron pour exécuter @reboot. Cela s'exécute une fois au démarrage du système. Utilisez crontab -e pour modifier la crontab et ajoutez une ligne comme l'exemple ci-dessous, par exemple

@reboot /path/to/some/script 

Il existe de nombreuses ressources pour cron si vous les recherchez. Ce site a plusieurs bons exemples.


7

Une autre façon typique de démarrer quelque chose au démarrage sur de nombreuses plates-formes * nix est (ou était, je pense que cela commence à perdre la faveur - voir les alternatives ) de mettre les scripts dans un répertoire qui, en fonction de l'OS / distribution particulier, pourrait être quelque chose comme /etc/rc2.d, /etc/rc3.d, /etc/rc/rc3.d, ou similaires (différentes distributions utilisent différents « niveaux d'exécution », qui est l' endroit où le nombre provient de - voir le lien ci - dessous). Souvent, ceux-ci sont également liés par des liens symboliques dans ou au niveau des fichiers /etc/init.d, pour une exécution plus facile à la main, et ils prennent un argument "start" et / ou "stop" dans la plupart des plateformes * nix, ainsi que "status", "restart", etc. sur de nombreuses plates-formes Linux. Sur ces systèmes, ceux-ci sont généralement exécutés par init,inittab. Sur les systèmes * BSD, il existe un style différent d'un concept similaire et, comme indiqué ci-dessus, il existe de nombreuses variantes.

Dans le style ci-dessus, les scripts dans, par exemple /etc/rc2.d(pour un système avec un niveau d'exécution par défaut de 2) commencent généralement par la lettre Sou K, puis un nombre à deux chiffres. Les scripts qui commencent par S sont exécutés dans l' ordre lexicographique (ce qui se traduit, en général, par ordre numérique) au démarrage, au niveau 2, avec un argument "start". Lors de l'arrêt, les scripts préfixés de K sont exécutés de la même manière, avec un argument "stop".

Les fichiers /etc/init.d(ou parfois /etc/rc/init.d, ou d'autres variantes) sont nommés sans les préfixes S et K, ni les nombres numériques. En règle générale, les fichiers des divers répertoires /etc/rc?.d établissent un lien symbolique vers les fichiers réels, souvent référencés via le préfixe de chemin relatif ../init.d/.

Différents utilitaires existent sur divers systèmes pour gérer ces derniers, ainsi, allumer et éteindre les choses, etc. Sur IRIX (depuis IRIX 4, au moins, si ma mémoire est bonne), c'était un outil appelé chkconfig, qui ne manipulait pas les liens, mais qui seraient vérifiés par les scripts pour voir s'ils devraient fonctionner ou non. Je pense que IRIX a été le premier système d'exploitation à avoir quelque chose comme ça. Plus tard, dans une version de RedHat que j'avais, il y avait un outil du même nom, mais il se comportait un peu différemment, gérant en fait les liens symboliques - voyez chkconfig(8)ce que je pense être probablement la même version (ou très similaire) comme je l'ai utilisé alors.

Sur un système Ubuntu 9.04 auquel j'ai accès, il ressemble update-rc.dau script à exécuter.

Si vous êtes sur un système qui utilise Inittab, vous pouvez également ajouter des choses directement là - bas - ce qui peut être particulièrement utile pour les choses que vous voulez exécuter non seulement une fois au démarrage, mais d'avoir un suivi actif (par init) pour respawnsi jamais ils planter ou terminer. Consultez la sortie de man inittab(si vous l'avez) sur votre système pour plus d'informations. Et / ou man init, etc. Il y a beaucoup de saveurs différentes, et je ne suis pas (actuellement) terriblement familier avec Debian ou Ubuntu, donc je ne sais pas exactement vers quoi vous diriger, mais j'espère que cela vous donne quelques points de départ .

la section @reboot dans crontob est nouvelle pour moi, mais semble également être une option utile - bien que je suggère que les scripts d'initialisation soient préférables pour beaucoup de choses. Mais voyez man 5 crontabpour beaucoup plus d'informations sur ce que vous pouvez mettre dans votre configuration cron, et comment on peut lui dire d'exécuter les choses, et quand (y compris, en supposant une version Vixie / ISC de cron [voir l' historique cron ] avec @reboot).

J'espère que c'est utile.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.