[rc.d] un script ne s'y execute pas au boot (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
mulanee
Elfe
Messages : 684
Inscription : mar. 08 janv. 2013, 22:02
Localisation : Ile de France

[rc.d] un script ne s'y execute pas au boot (résolu)

Message par mulanee »

Bonsoir,
J'ai besoin de lancer une commande au boot puisque je n'ai pas trouvé de service associé.
J'ai un script basique que j'ai mis dans /etc/rc.d et que j'ai rendu éxécutable.
Ce script ne se lance pas au boot, par contre il se lance quand on double clique dessus.
Comment le rendre actif au boot ?
Merci.
Dernière modification par mulanee le mer. 22 mai 2013, 22:34, modifié 1 fois.
Avatar de l’utilisateur
widapit
Maître du Kyudo
Messages : 1148
Inscription : mar. 30 mars 2010, 22:53
Localisation : Toulouse

Re: [rc.d] un script ne s'y execute pas au boot

Message par widapit »

Salut !

sauf de le faire explicitement, /etc/rc.d n'est plus lu depuis Systemd ... :mrgreen:
Pour lancer un script au démarrage, il te faut lui créer un service dans le genre :

Code : Tout sélectionner

# vim /etc/systemd/system/un_script.service
[Unit]
Description=une description du script

[Service]
ExecStart=/chemin/vers_le/script/par_exemple.sh

[Install]
WantedBy=multi-user.target
puis de le lancer avec

Code : Tout sélectionner

systemctl enable un_script.service
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
Avatar de l’utilisateur
mulanee
Elfe
Messages : 684
Inscription : mar. 08 janv. 2013, 22:02
Localisation : Ile de France

Re: [rc.d] un script ne s'y execute pas au boot

Message par mulanee »

On dirait que dans /etc/systemd/system ce ne sont que des raccourcis.

J'y avais pensé mais c'est en faisant systemctl enable etc... que l'on remplit /etc/systemd/system, non?
Avatar de l’utilisateur
widapit
Maître du Kyudo
Messages : 1148
Inscription : mar. 30 mars 2010, 22:53
Localisation : Toulouse

Re: [rc.d] un script ne s'y execute pas au boot

Message par widapit »

Trouvé sur https://wiki.archlinux.org/index.php/Systemd#Units
The available unit files can be seen in /usr/lib/systemd/system/ and /etc/systemd/system/ (the latter takes precedence)
moi, j'ai écrit les miens directement dans /etc/systemd/system ...
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
Avatar de l’utilisateur
mulanee
Elfe
Messages : 684
Inscription : mar. 08 janv. 2013, 22:02
Localisation : Ile de France

Re: [rc.d] un script ne s'y execute pas au boot

Message par mulanee »

Vu.
Il faut commencer par mettre le script dans

Code : Tout sélectionner

/usr/lib/systemd/system
Puis le rendre actif pour le boot par l'option enable.
C'est à ce moment que le lien est créé dans

Code : Tout sélectionner

/etc/systemd/system/multi-user.target.wants
edit:reste juste à trouver le cas échéant comment garder la main après un

Code : Tout sélectionner

sudo systemctl start toto.service
Avatar de l’utilisateur
widapit
Maître du Kyudo
Messages : 1148
Inscription : mar. 30 mars 2010, 22:53
Localisation : Toulouse

Re: [rc.d] un script ne s'y execute pas au boot

Message par widapit »

edit:reste juste à trouver le cas échéant comment garder la main après un

Code : Tout sélectionner

sudo systemctl start toto.service
comprend pas... m'enfin oui, après tout dépend de ce que tu vas mettre dans ton *.service. Mais une fois créé, tu le traites comme un autre...
C'est à dire, enable, start, stop, etc... je suppose que si c'est pour un lancement auto au démarrage, enable fera l'affaire...
routeur(OpenWRT); serveurs(Debian, Arch); cléUSB(Black-Arch);
mon ordi(Arch-hardened) = {spectrwm, zsh} || je m'amuse aussi avec des Arduino !
Avatar de l’utilisateur
z3bra
archer
Messages : 127
Inscription : jeu. 28 juin 2012, 23:17

Re: [rc.d] un script ne s'y execute pas au boot

Message par z3bra »

Il est, en général, de bonne pratique de placer tous ses services "personnels" dans /etc/systemd/system/ afin de pas les confondre avec les services installés par les paquets. (après tu fais comme il te chantes :D /etc/mes_super_services/ et symlink ensuite ou ce que tu veux ^^)
archlinux - 2bwm [ blog | git ]
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [rc.d] un script ne s'y execute pas au boot

Message par Ypnose »

mulanee a écrit :Vu.
Il faut commencer par mettre le script dans

Code : Tout sélectionner

/usr/lib/systemd/system
Puis le rendre actif pour le boot par l'option enable.
C'est à ce moment que le lien est créé dans

Code : Tout sélectionner

/etc/systemd/system/multi-user.target.wants
Non. Tu peux mettre les services dans /etc/systemd/system comme widapit l'a dit et ensuite les activer avec l'option enable.
Si tu les places dans /usr/lib/systemd/system, il est possible que tes services disparaissent/soient remplacés lors de mises à jour.
Les placer dans /etc/ permet d'être sur qu'ils sont bien gardés. Ces derniers "inhibent" ceux installés dans /usr.
Avatar de l’utilisateur
mulanee
Elfe
Messages : 684
Inscription : mar. 08 janv. 2013, 22:02
Localisation : Ile de France

Re: [rc.d] un script ne s'y execute pas au boot

Message par mulanee »

Bon j'ai fait comme dit.

Reste que

Code : Tout sélectionner

└»»sudo systemctl start ushare.service
ne me rend pas la main.

Peut-être un truc qui manque dans le fichier service ?

Code : Tout sélectionner

[Unit]
Description=Service Ushare serveurUpNp
StopWhenUnneeded=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/ushare -w

[Install]
WantedBy=multi-user.target
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [rc.d] un script ne s'y execute pas au boot

Message par benjarobin »

Pourquoi avoir mit :

Code : Tout sélectionner

Type=oneshot
RemainAfterExit=yes
Voir la documentation...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
mulanee
Elfe
Messages : 684
Inscription : mar. 08 janv. 2013, 22:02
Localisation : Ile de France

Re: [rc.d] un script ne s'y execute pas au boot

Message par mulanee »

Pourquoi avoir mit :
J'ai recopié un autre service :?

Bon j'ai supprimé les 2 lignes en question ça a l'air de fonctionner :mrgreen:
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [rc.d] un script ne s'y execute pas au boot (résolu)

Message par benjarobin »

Donc tu n'as pas lu la documentation, c'est mieux de spécifié le "Type"
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
mulanee
Elfe
Messages : 684
Inscription : mar. 08 janv. 2013, 22:02
Localisation : Ile de France

Re: [rc.d] un script ne s'y execute pas au boot (résolu)

Message par mulanee »

Donc tu n'as pas lu la documentation
Ok,

Code : Tout sélectionner

Type=simple
Pour le suivi le lien est là

https://wiki.archlinux.org/index.php/Sy ... vice_files
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [rc.d] un script ne s'y execute pas au boot (résolu)

Message par Ypnose »

Essaie aussi: man systemd.service
Répondre