J'ai pu le faire dans Ubuntu en modifiant le fichier :
/etc/rc.local
et ajouter :
IP=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
echo "IP: $IP" > /etc/issue
Dans Arch, ce fichier n'existe pas "/etc/rc.local" et après quelques recherches j'ai trouvé que je dois créer ce fichier :
/etc/systemd/system/rc-local.service
Contenu :
[Unit]
Description=/etc/rc.local compatibility
[Service]
Type=oneshot
ExecStart=/etc/rc.local
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Ensuite, Créez "/etc/rc.local".
Contenu :
IP=$(/sbin/ip route get 1 | awk '{print $NF;exit}')
echo "IP: $IP" > /etc/issue
exit 0
Ensuite, Rendez-le exécutable :
sudo chmod +x /etc/rc.local
Et enfin démarrez/testez :
sudo systemctl start rc-local.service
Obtention de l'erreur :
Le travail pour rc-local.service a échoué car le processus de contrôle s'est terminé avec un code d'erreur.
Voir "systemctl status rc-local.service" et "journalctl -xe" pour plus de détails.
Sortie de systemctl status rc-local.service
:
* rc-local.service - /etc/rc.local Compatibilité
Chargé: chargé (/etc/systemd/system/rc-local.service; activé; préfixe du vendeur : désactivé)
Actif: échoué (Résultat: code de sortie) depuis le ven. 2016-06-10 02:52:17 AST; il y a 1min 59s
Processus: 760 ExecStart=/etc/rc.local (code=exited, status=203/EXEC)
10 juin 02:52:17 maro systemd[1]: Démarrage de /etc/rc.local Compatibilité...
10 juin 02:52:17 maro systemd[1]: rc-local.service: Le processus de contrôle s'est terminé, code=exited status=203
10 juin 02:52:17 maro systemd[1]: Échec de la compatibilité de /etc/rc.local.
10 juin 02:52:17 maro systemd[1]: rc-local.service: L'unité est entrée dans un état échoué.
10 juin 02:52:17 maro systemd[1]: rc-local.service: Échec avec le résultat 'code de sortie'.
Sortie de journalctl -xe
:
-- L'unité rc-local.service a commencé à démarrer.
10 juin 02:52:17 maro systemd[760]: rc-local.service: Échec à l'étape DÉMARRAGE spawn /etc/rc.local: Erreur de format d'exécution
-- Sujet : Le processus /etc/rc.local n'a pas pu être exécuté
-- Défini par : systemd
Mise à jour :
- Ajouté
#!/bin/bash
à/etc/rc.local
sudo systemctl daemon-reload
sudo systemctl start rc-local.service
- Maintenant je n'obtiens plus d'erreurs ! mais :
-
sudo systemctl status rc-local.service
Sortie :rc-local.service - /etc/rc.local Compatibilité Chargé: chargé (/etc/systemd/system/rc-local.service; activé; préfixe du vendeur : désactivé) Actif: inactif (mort) depuis le ven. 2016-06-10 13:13:04 AST; il y a 3s Processus: 488 ExecStart=/etc/rc.local (code=exited, status=0/SUCCESS)
10 juin 13:13:04 maro systemd[1]: Démarrage de /etc/rc.local Compatibilité... 10 juin 13:13:04 maro systemd[1]: Démarré /etc/rc.local Compatibilité.
Essayé de redémarrer et avant de me connecter ça affiche :
rtnetlink answers network is unreachable
À l'écran de connexion : ça affiche seulement "IP:" sans afficher l'IP de la machine. Une fois connecté et ping google par exemple, internet fonctionne sans problème et la machine est accessible via le LAN.
sudo env -i /etc/rc.local
= Aucune sortieip route get 1 | awk '{print $NF;exit}'
qui est utilisé dans/etc/rc.local
= 192.168.0.103
Sortie de nav
:
XDG_SESSION_ID=c2
TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=192.168.0.100 64436 22
SSH_TTY=/dev/pts/0
USER=maro
MAIL=/var/spool/mail/maro
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
PWD=/home/maro
LANG=C
SHLVL=1
HOME=/home/maro
LOGNAME=maro
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
SSH_CONNECTION=192.168.0.100 64436 192.168.0.103 22
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env
Édité /etc/systemd/system/rc-local.service
: Supprimer quatre paramètres après ExecStart. J'ai également essayé de changer : Type=forking
Le statut indique toujours : Actif: inactif (mort)
0 votes
Il semble que vous vouliez afficher l'adresse IP, et non l'IP, comme vous l'avez demandé dans la question. Vous n'avez que deux IPs possibles : IPv4 et IPv6.
0 votes
@RonMaupin, Désolé pour l'erreur, je veux afficher l'adresse IP interne. Y a-t-il une erreur dans mes étapes ou code bash ?