J'avais un script qui active automatiquement mon wifi sans utiliser networkmanager, mais je ne sais pas comment exécuter le script en tant que root pendant le démarrage du système. Comment faire pour que le script s'exécute automatiquement lors du démarrage?
Placez le script que vous souhaitez exécuter dans le répertoire /etc/init.d et rendez-le exécutable.
chmod 755 myscript
Une fois que cela est fait, créez un lien symbolique dans le répertoire de niveau d'exécution que vous souhaitez utiliser, par exemple si vous souhaitez exécuter un programme dans le niveau d'exécution graphique 2, le niveau d'exécution par défaut pour Ubuntu, placez-le dans le répertoire /etc/rc2.d
. Vous ne pouvez simplement pas y placer le répertoire, vous devez indiquer quand il sera exécuté en indiquant le démarrage avec un "S" et l'ordre d'exécution est important. Placez-le après tout ce qui se trouve dans le répertoire en lui attribuant un numéro plus élevé.
Si le dernier script à exécuter est rc.local
et qu'il s'appelle S99rc.local
, vous devez ajouter votre script sous le nom S99myscript
.
ln -s /etc/init.d/myscript /etc/rc3.d/S99myscript
Chaque répertoire compatible /etc/rc*.d
possède des liens symboliques vers le répertoire /etc/init.d/
.
Incluez la commande dans /etc/rc.local
. Il sera exécuté chaque fois que le niveau d'exécution de l'utilisateur change.
Remarque: Vous devez placer la commande avant la dernière ligne dans /etc/rc.local qui contient: "exit 0".
Utilisez une option crontab
pour que votre script soit exécuté après le redémarrage.
vous pouvez le faire en ajoutant le code @reboot
dans cron
@reboot yourScriptPath
le fera
Cela a fonctionné pour moi sur Ubuntu 17.04:
créez un fichier de script de visite tel que disable_cdrom
à votre emplacement. Dans mon cas, home/yterle/disable_cdrom
. Dans mon cas:
#!/bin/sh
eject /dev/sr0 -i 1
le rendre exécutable chmod 775 disable_cdrom
/etc/systemd/system
et créez-y un fichier service
. Par exemple Sudo gedit /etc/systemd/system/disable_cdrom.service
Mon disable_cdrom.service
ressemble à ceci:
[Unit]
Description=Disable cdrom
[Service]
Type=oneshot
ExecStart=/bin/sh /home/yterle/disable_cdrom
[Install]
WantedBy=multi-user.target
Où ExecStart
pointe pour exécuter votre script avec /bin/sh
Puis exécutez systemctl enable disable_cdrom.service
pour activer le service systemd
Incluez votre fichier de script à /etc/init.d/
avec l'autorisation Executable, puis définissez un niveau d'exécution différent
$ update-rc.d script-name default
Cela mettra votre script au démarrage.
Créez un fichier texte comme celui-ci dans /etc/cron.d/
:
Shell=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot root yourScriptPath
(Vous devez remplacer yourScriptPath
par le chemin du script que vous souhaitez exécuter.)