Systemctl Script au démarrage

Bonjour
Sur mon orangepi 3B, un bug impose de réinitialiser la carte ethernet afin de disposer du réseau
Il est documenté ici https://www.reddit.com/r/OrangePI/comments/1aojmn3/orange_pi_3b_ethernet_doesnt_work/

De ce fait j’ai écrit ce script tout simple et ça passe

#!/bin/sh

# SOURCE  https://www.reddit.com/r/OrangePI/comments/1aojmn3/orange_pi_3b_ethernet_doesnt_work/

io -4 0xFDC60284 0x3f3f3f3f
io -4 0xFDC6028C 0x003f003f
io -4 0xFDC60298 0x3f003f00
io -4 0xFDC6029C 0x3f3f3f3f
io -4 0xfdc60388 0xFFFF0049

service networking restart

Mais pour le lancer , il faut que je sois connecté physiquement au serveur

J’ai bien essayé d’écrire un script systemd pour automatiser son lancement mais, il ne fonctionne pas. Je pense que je le lance à un mauvais moment de la procédure d’initialsation

Le voici

cat /etc/systemd/system/fixethernet.service 
[Unit]
Description=Correction BUG ethernet
ConditionPathExists=/home/crust/scripts/fixethernet.sh
After=network.target
 
[Service]
Type=forking
ExecStart=/home/crust/scripts/fixethernet.sh start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

Le After=network.target ne doit pas être la bonne valeur … mais laquelle mettre pour le lancer ni trop tôt ni trop tard ?

J’ai bien lu cette doc mais tout cela est confus pour trouver le bon target Systemd Before= After= Wants= RequiredBy= demystified | Blog de zarak

Un petit coup de pouce serait le bienvenu, merci d’avance :wink:

Bonjour,
Si c’est après le reboot du serveur tu peux le faire avec crontab:

sudo crontab -e

@reboot . /usr/local/sbin/script.sh

Ou bien avec systemd:

vim /etc/systemd/system/myscript.service

Avec

[Unit]
Description=Reboot message systemd service.
[Service]
Type=simple
ExecStart=/usr/local/sbin/script.sh
[Install]
WantedBy=multi-user.target

et ensuite:

chmod 644 /etc/systemd/system/myscript.service
systemctl enable myscript.service
1 J'aime

Merci Zargos
Effectivement j’aurais du penser à la crontab… Mais j’étais bloqué sur systemd
+1,
Je teste cela ce jour :wink: et fais un retour

Après test, j’ai opté pour la crontab root

Juste compléter le chemin complet pour les binaires

/usr/local/bin/io -4 0xFDC60284 0x3f3f3f3f
/usr/local/bin/io -4 0xFDC6028C 0x003f003f
/usr/local/bin/io -4 0xFDC60298 0x3f003f00
/usr/local/bin/io -4 0xFDC6029C 0x3f3f3f3f
/usr/local/bin/io -4 0xfdc60388 0xFFFF0049

/usr/sbin/service networking restart

Sur cron

@reboot /home/crust/scripts/fixethernet.sh

Merci Zargos :wink:

1 J'aime