Salut à tous,
Il existe moult services d'init sous Linux.Comment trouver celui qui est utilisé ?
Simplement chercher les paquets installés n'est pas suffisant, puisqu'on peut, par exemple, installer initv et systemd, mais n'en utiliser qu'un seul des deux.
Savoir quel système d'init est utilisé
- BelZéButh
- Contributeur
- Messages : 454
- Inscription : 22 avr. 2016, 08:39
- Localisation : Ch'timi
- Status : Hors-ligne
Code : Tout sélectionner
# ps -aux
La première loi du libre et de tout hacker, au sens noble, le partage de la connaissance !
Site de réinformation ... http://www.panamza.com
Site de réinformation ... http://www.panamza.com
- vohu
- Membre
- Messages : 455
- Inscription : 16 avr. 2016, 12:02
- Localisation : Strasbourg
- Status : Hors-ligne
Le problème c'est qu'ils s'appellent tous init lorsqu'ils sont installé non ?
en faisant un ls -l /sbin/init on peut déjà savoir si /sbin/init est un lien symbolique vers un autre fichier, qui pourrait se trouver ou être nombé de façon plus parlante
en faisant un ls -l /sbin/init on peut déjà savoir si /sbin/init est un lien symbolique vers un autre fichier, qui pourrait se trouver ou être nombé de façon plus parlante
- Dunatotatos
- Membre
- Messages : 426
- Inscription : 11 mai 2016, 20:56
- Status : Hors-ligne
Effectivement, sur un système qui utilise sytemd :
Et pas de lien pour init :
Code : Tout sélectionner
$ ps aux | head -n 2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 15812 1068 ? Ss Jul18 0:01 init [2]
Code : Tout sélectionner
$ ls -l /sbin/init
-rwxr-xr-x 1 root root 40752 Jun 22 13:34 /sbin/init
- vohu
- Membre
- Messages : 455
- Inscription : 16 avr. 2016, 12:02
- Localisation : Strasbourg
- Status : Hors-ligne
J'ai trouvé ça :
Ca fonctionne chez moi pour sysv
Code : Tout sélectionner
if [[ `/sbin/init --version` =~ upstart ]]; then echo upstart;
elif [[ `systemctl` =~ -\.mount ]]; then echo systemd;
elif [[ -f /etc/init.d/cron && ! -h /etc/init.d/cron ]]; then echo sysv-init;
else echo aucune idée; fi
-
- Modérateur
- Messages : 896
- Inscription : 16 avr. 2016, 22:14
- Status : Hors-ligne
@ vohu
Pour information, depuis un système utilisant systemd (debian jessie) :
Pour éviter les retours d'erreur de certaines commandes, je propose de modifier un peu la ligne de commandes :
Pour information, depuis un système utilisant systemd (debian jessie) :
Code : Tout sélectionner
$ if [[ `/sbin/init --version` =~ upstart ]]; then echo upstart;
> elif [[ `systemctl` =~ -\.mount ]]; then echo systemd;
> elif [[ -f /etc/init.d/cron && ! -h /etc/init.d/cron ]]; then echo sysv-init;
> else echo aucune idée; fi
/sbin/init : option non reconnue « --version »
systemd
Code : Tout sélectionner
if [[ $(/sbin/init --version 2>/dev/null) =~ upstart ]]; then echo upstart;
elif [[ $(systemctl 2>/dev/null) =~ -\.mount ]]; then echo systemd;
elif [[ -f /etc/init.d/cron && ! -h /etc/init.d/cron ]]; then echo sysv-init;
else echo aucune idée; fi
- Dunatotatos
- Membre
- Messages : 426
- Inscription : 11 mai 2016, 20:56
- Status : Hors-ligne
Je confirme, ce script semble fonctionner et m'a bien servi. Un petit déplacement dans T&A ?
- lol
- Site Admin
- Messages : 5054
- Inscription : 04 avr. 2016, 12:11
- Localisation : Madagascar
- Status : Hors-ligne
Fait!Dunatotatos a écrit :Un petit déplacement dans T&A ?
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.