Exibir ip na inicialização - centos 7

3

Muito novo no systemctl, gostaria de exibir meu endereço IP da VM no console quando inicializo meus centos.

Eu criei um serviço e o habilitei:

[root@centos-3 system]# cat show-ip-on-boot.service
[Unit]
Description=Show IP of eno interface on boot

[Service]
Type=oneshot
ExecStart=/usr/bin/show-ip-on-boot.sh

[Install]
WantedBy=multi-user.target

O script "show-ip-on-boot.sh" é:

 #!/bin/sh

 ip a | grep "inet" | grep "eno" | awk -F/ '{print $1}' | awk '{print $2}'

Quando inicio o serviço manualmente, vejo nos registros que ele está funcionando:

[root@centos-3 ~]# journalctl -u show-ip-on-boot
-- Logs begin at Thu 2016-10-06 13:59:38 CEST, end at Thu 2016-10-06 14:15:37 CEST. --
Oct 06 14:04:32 centos-3.localdomain systemd[1]: Starting Show IP of eno interface on boot...
Oct 06 14:04:32 centos-3.localdomain show-ip-on-boot.sh[2180]: 192.168.0.43
Oct 06 14:04:32 centos-3.localdomain systemd[1]: Started Show IP of eno interface on boot.

mas como posso vê-lo exibido no console na inicialização? Devo acrescentar algo ao meu roteiro?

Além disso, quando eu reinicio, vejo nos logs que o serviço está iniciado, mas não executa o comando:

[root@centos-3 ~]# systemctl status show-ip-on-boot.service
â show-ip-on-boot.service - Show IP of eno interface on boot
Loaded: loaded (/etc/systemd/system/show-ip-on-boot.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Thu 2016-10-06 13:33:55 CEST; 1min 52s ago
Process: 740 ExecStart=/usr/bin/show-ip-on-boot.sh (code=exited, status=0/SUCCESS)
Main PID: 740 (code=exited, status=0/SUCCESS)

Oct 06 13:33:54 centos-3.localdomain systemd[1]: Starting Show IP of eno interface on boot...
Oct 06 13:33:55 centos-3.localdomain systemd[1]: Started Show IP of eno interface on boot.

Eu provavelmente sinto falta de algo no conceito systemd ... Você pode por favor me dar uma dica sobre o assunto. Obrigado.

    
por Pozinux 06.10.2016 / 14:38

1 resposta

2

O systemd coleta a saída dos serviços e a registra no diário (porque geralmente é o que você quer, de modo que a saída dos serviços seja persistente).

Você pode alterar o comportamento de um serviço específico definindo as opções StandardOutput e StandardError , conforme descrito no systemd.exec (5) página man, que diz:

StandardOutput=

Controls where file descriptor 1 (STDOUT) of the executed processes is connected to. Takes one of inherit, null, tty, journal, syslog, kmsg, journal+console, syslog+console, kmsg+console or socket.

[...]

journal+console, syslog+console and kmsg+console work in a similar way as the three options above but copy the output to the system console as well.

Então, em teoria, algo assim deveria fazer o truque:

[Service]
Type=oneshot
ExecStart=/usr/bin/show-ip-on-boot.sh
StandardOutput=journal+console
    
por 06.10.2016 / 15:52