如何防止(或至少自动修复)`avahi-daemon:运行 [ubuntu_comp_hostname.local]` 被附加有 `-2` 的版本替换?

如何防止(或至少自动修复)`avahi-daemon:运行 [ubuntu_comp_hostname.local]` 被附加有 `-2` 的版本替换?

我遇到了这个问题:
#=>avahi-daemon: running [ubuntu_comp_hostname.local]
一直被带有附加内容的版本替换-2
#=>avahi-daemon: running [ubuntu_comp_hostname-2.local]


我发现来自:
>ps -eo cmd | grep avahi
除此之外(以及 grep 本身)只出现:
#=> avahi-daemon: chroot helper


我一直在通过运行来解决这个问题:
>sudo service avahi-daemon restart
但每当我尝试运行一些涉及 ssh 的 shell 函数时,它就很烦人,
它会挂起一段时间,然后最终运行:
#=>ssh: Could not resolve hostname ubuntu_comp_hostname.local: Name or service not known


(这只是一台个人笔记本电脑,连接到家庭网络,并配备了本地 ISP 公司提供的标准调制解调器路由器设置之一。)


遗憾的是,我相当无知(特别是在这个问题上以及一般情况下),
但猜测如下似乎是合理的:

  • avahi 崩溃或重新启动或发生其他问题

  • 然后它尝试再次以普通方式启动[ubuntu_comp_hostname.local]
    但仍然处于停止状态或其他状态
    (作为计算机上的进程?还是在网络上其他地方的某个缓存中?或......?)
    因此它会自动将一个附加-2到实际主机名的末尾

类似这样的事,对吧?


我不确定具体什么时候发生。我只能说:

  • 这不会发生每一个计算机从睡眠状态唤醒的时间

  • 可能有时会发生以外当计算机刚从睡眠状态唤醒时


所以...我怎样才能防止这种情况发生?
(或者如果失败了,让它自动修复发生??)

答案1

我在 Raspberry Pi 上遇到了同样的问题。在找到更好的解决方案之前,我添加了一个 crontab 条目来每天运行此脚本。

#!/bin/bash

writelog()
{
echo $(date) >> /home/pi/avahirestart.log
}
aname=$(avahi-resolve -a $(hostname -I|cut -d' ' -f1)|cut -f2)
if [[ "$aname" = *"-2"* ]];then
sudo service avahi-daemon restart
writelog
fi
if [[ "$aname" = *"-3"* ]];then
sudo service avahi-daemon restart
writelog
fi

相关内容