[Démarrage] commande bash pendant le démarrage (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Le Limule
Hankyu
Messages : 38
Inscription : jeu. 02 août 2012, 20:42

[Démarrage] commande bash pendant le démarrage (résolu)

Message par Le Limule »

bonjour,

j'ai un problème tout bête: je n'arrive pas à passer une commande bash pendant le démarrage (en tant que root donc).
exemple: je veux qu'un fichier /home/test soit créé pendant le démarrage.

il m'a semblé qu'on pouvait passer par un service avec systemd (mais s'il y a une solution plus simple je suis à l'écoute...).

j'ai donc créé un fichier /etc/systemd/system/test.service

Code : Tout sélectionner

[Unit]
Description=test

[Service]
Type=oneshot
ExecStart=/usr/bin/touch /home/test

[Install]
Alias=MAC.service
puis j'ai rentré:

Code : Tout sélectionner

# systemctl enable test.service
il me crée alors un raccourci MAC.service qui pointe vers test.service dans ce même répertoire.

si je rentre:

Code : Tout sélectionner

# systemctl start test.service
ça fonctionne, il me crée le fichier test "en direct".

mais si je redémarrage, il ne le crée pas.

que faire?
Dernière modification par Le Limule le dim. 22 févr. 2015, 00:32, modifié 1 fois.
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [Démarrage] commande bash pendant le démarrage

Message par Moviuro »

Plop !

Tu ne donnes pas de target à ton service, c'est pour ça que enable ne fonctionne pas comme attendu. Lis les services dans /usr/lib/systemd/system pour avoir des idées ainsi que systemd.unit(5), pour la section appropriée.

Mais je ne pense pas que ce soit réellemnt le problème : quelle est la chose que tu souhaite changer en lançant un script au démarrage ? un truc très très spécifique à ta machine ou un cas plutôt répandu auquel tu tentes de répondre par toi-même ?

++
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Le Limule
Hankyu
Messages : 38
Inscription : jeu. 02 août 2012, 20:42

Re: [Démarrage] commande bash pendant le démarrage

Message par Le Limule »

merci.
je souhaite changer l'adresse MAC de l'interface réseau de ma carte mère car il semble qu'il y a un bug à ce niveau:

Code : Tout sélectionner

[utilisateur@localhost ~]$ dmesg|grep skge
[   10.110243] skge: 1.14 addr 0xfeafc000 irq 22 chip Yukon rev 1
[   10.110264] skge 0000:02:05.0: bad (zero?) ethernet address in rom
[   10.110609] skge 0000:02:05.0 eth0: addr 00:00:00:00:00:00
(et donc pas de réseau)
(après quelques recherches j'ai trouvé que l'on pouvait contourner ce pb en changeant l'adresse MAC, et en effet ça marche)

la commande que je veux passer au démarrage est donc celle-ci:

Code : Tout sélectionner

# ifconfig enp2s5 hw ether 00:90:f5:30:41:71
(enp2s5 est le nom de l'interface. 00:90:f5:30:41:71 est une possibilité parmi plein d'autres)

je n'ai pas trouvé d'autre solution pour l'instant.
en attendant je vais regarder ce que tu me dis sur la "target".
Le Limule
Hankyu
Messages : 38
Inscription : jeu. 02 août 2012, 20:42

Re: [Démarrage] commande bash pendant le démarrage (résolu)

Message par Le Limule »

ça y est j'ai compris.
il fallait indiquer dans le .service que ce service est lancé par une "target". exemple de mon test.service:

Code : Tout sélectionner

[Unit]
Description=test

[Service]
Type=oneshot
ExecStart=/usr/bin/touch /home/test

[Install]
WantedBy=multi-user.target
(ici en l'occurence j'ai choisi l'étape "multi-utilisateur" du démarrage)

ensuite il faut faire le

Code : Tout sélectionner

# systemctl enable test.service
pour que le lien symbolique soit créé afin que "l'étape de démarrage" multi-user.target rajoute le lancement de test.service à ses autres lancements.
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [Démarrage] commande bash pendant le démarrage (résolu)

Message par Moviuro »

Ppour changer l'adresse MAC d'une carte, je pense qu'il vaut mieux utiliser udev ou systemd.network(5)
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Répondre