![启动时更新 hosts 文件](https://linux22.com/image/916533/%E5%90%AF%E5%8A%A8%E6%97%B6%E6%9B%B4%E6%96%B0%20hosts%20%E6%96%87%E4%BB%B6.png)
我正在尝试修复一个问题,如果主机名不在,则 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