我遇到了这个问题:
#=>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