启动时显示ip - centos 7

启动时显示ip - centos 7

对于 systemctl 来说相当陌生,我想在启动 centos 时在控制台上显示我的虚拟机 IP 地址。

我创建了一项服务并启用它:

[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

“show-ip-on-boot.sh”脚本是:

 #!/bin/sh

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

当我手动启动服务时,我可以在日志中看到它正在工作:

[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.

但我怎样才能看到它在启动时显示在控制台上?我应该在我的脚本中添加一些东西吗?

另外,当我重新启动时,我可以在日志中看到该服务已启动但不执行命令:

[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.

我可能错过了 systemd 概念中的一些东西...您能给我关于此事的提示吗?谢谢。

答案1

systemd 收集服务的输出并将其记录在日志中(因为这通常是您想要的,因此服务的输出是持久的)。

StandardOutput您可以通过设置和StandardError选项来更改特定服务的行为,如系统执行(5)手册页显示:

StandardOutput=

控制已执行进程的文件描述符 1 (STDOUT) 连接到的位置。采用inherit、null、tty、journal、syslog、kmsg、journal+console、syslog+console、kmsg+console 或socket 之一。

[...]

journal+consolesyslog+consolekmsg+console工作方式与上述三个选项类似,但也将输出复制到系统控制台。

所以从理论上讲,类似这样的事情应该可以解决问题:

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

答案2

不需要服务只需在 /etc/issue 文件中添加一行即可。在我的 /etc/issue 文件下面:

\S

内核 \r 位于 \m 上

我的 IP 地址:\4{enp0s3} <----- 添加行,

在 VirtualBox 中使用 Centos 7。

“enp03s”是我想知道IP的网络接口卡。

相关内容