启动时更新 hosts 文件

启动时更新 hosts 文件

我正在尝试修复一个问题,如果主机名不在,则 sudo 需要几秒钟/etc/hosts

这在 CLI 中有效:

sed -i "s/ubuntu-template/$HOSTNAME/g" /etc/hosts

但如果我将其保存到文件中/etc/init.d/fixhostnames.sh

#!/bin/sh
sed -i "s/ubuntu-template/$HOSTNAME/g" /etc/hosts

它在启动时不执行任何操作。该文件为 +x,并且具有与 init.d 中的其他文件相同的权限。

任何帮助都将受到赞赏。

答案1

以下是有效的方法。

fixhostsfile.sh

#!/bin/sh 
hostnm=$(hostname) 
sed -i 's/ubuntu-template/'"$hostnm"'/g' /etc/hosts

并且/etc/systemd/system/fixhostsfile.service

[Unit]
Description=Fix etc/hosts

[Service]
Type=oneshot
ExecStart=/home/user/fixhostsfile.sh

[Install]
WantedBy=multi-user.target

不要忘记运行:

systemctl enable fixhostsfile

相关内容