每次重新启动VPS时,Dnsmasq无法启动。下面是有关它的日志。
Aug 22 18:14:51 debian dnsmasq[776]: dnsmasq: syntax check OK.
Aug 22 18:14:51 debian dnsmasq[798]: chown: invalid user: ‘dnsmasq:nogroup’
Aug 22 18:14:51 debian systemd[1]: dnsmasq.service: Control process exited, code=exited status=2
Aug 22 18:14:51 debian systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
Aug 22 18:14:51 debian systemd[1]: dnsmasq.service: Unit entered failed state.
Aug 22 18:14:51 debian systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
我将在/etc/dnsmasq.conf
文件中正确设置用户名和组名。我尝试重新安装dnsmasq,然后工作了。但是,重新启动VPS后,它无法再次启动。然后我必须再次重新安装...
因此,如果我要使用dnsmasq,则不必重启我的VPS。但是我想知道是什么原因造成的,以及如何一劳永逸地解决它。我的VPS的系统是Debian 9,内核是4.9.0-7-amd64。
答案 0 :(得分:1)
最后,我找到了问题并解决了。如系统所告知,chown: invalid user: ‘dnsmasq:nogroup’
是错误的代码。我以为dnsmasq无法自动添加导致错误的用户或组。
一种解决方案可能是手动添加名为“ dnsmasq”的用户。我没有尝试过,但我认为它可以工作。另一种处理方式是在相对文件中查找用户“ dnsmasq”,并用“ nobody”之类的现有用户替换用户“ dnsmasq”。
/etc/init.d/dnsmasq
文件中有3个地方需要替换。
if [ ! "$DNSMASQ_USER" ]; then
DNSMASQ_USER="*dnsmasq*"
fi
# /run may be volatile, so we need to ensure that
# /run/dnsmasq exists here as well as in postinst
if [ ! -d /run/dnsmasq ]; then
mkdir /run/dnsmasq || return 2
chown *dnsmasq*:nogroup /run/dnsmasq || return 2
fi
# /run may be volatile, so we need to ensure that
# /run/dnsmasq exists here as well as in postinst
if [ ! -d /run/dnsmasq ]; then
mkdir /run/dnsmasq || return 2
chown *dnsmasq*:nogroup /run/dnsmasq || return 2
fi
替换上方3个强调的位置。
尽管我不确定dnsmasq为什么无法访问帐户文件。