Je voudrais exécuter la commande simple Shell echo 1 > /proc/sys/kernel/sysrq
à chaque démarrage, pour activer les clés sysrq. Quand est-ce que cela devrait être fait au démarrage, et où devrais-je mettre un script pour le faire?
Dépend des distributions.
Si vous êtes sur des distributions dérivées de Debian, il y a au moins deux endroits appropriés: /etc/rc.local et crontab. Vous pouvez invoquer crontab en tant que root,
crontab -e
puis insérez cette ligne
@reboot /home/my_name/bin/my_command
où my_command
est un fichier exécutable (chmod 755 my_command
).
Alternativement, vous pouvez placer une ligne comme celle-ci
/home/my_name/bin/my_command
dans /etc/rc.local, et ce sera exécuté en dernier. Dans tous les cas, les pls se souviennent que vous utilisez un environnement root, pas le vôtre. Aussi, pour cette raison, il est préférable d'utiliser des chemins absolus.
Si vous êtes sur un systemd distro (Arch Linux, Fedora 19, ...), la première option (crontab) est toujours valide, tandis que la seconde (/etc/rc.local) n’existe pas. plus long. Dans ce cas, vous devriez apprendre à démarrer un service devant être géré par systemctl
, mais cela peut être plus que ce que vous avez prévu avec votre simple question.
Si votre système exécute une version de cron
qui la prend en charge (en particulier Vixie cron), vous pouvez utiliser @reboot
dans un travail cron.
C'est l'une des 8 chaînes spéciales qu'il prend en charge.
Citant la page de manuel crontab(5)
(de mon système Ubuntu 12.04):
Au lieu des cinq premiers champs, une des huit chaînes spéciales peut apparaître:
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
Veuillez noter que le démarrage, en ce qui concerne
@reboot
, est l'heure à laquelle le démarrage de cron (8) daemon. Cela peut notamment être le cas avant que certains démons du système, ou d’autres installations, ne soient démarrés. Cela est dû à la séquence de démarrage de la machine.
C’est loin d’être le seul moyen d’exécuter quelque chose au démarrage, mais c’est une alternative.
Presque toutes les variantes de Linux (il y a très longtemps) ont un fichier /etc/rc.local qui s'exécute au démarrage - vous pouvez simplement y ajouter la commande.
Cela dit, vous n'avez même pas besoin de faire cela. La méthode "correcte" consisterait à modifier/ajouter la ligne kernel.sysrq = 1 dans /etc/sysctl.conf