我正在尝试运行一个调用服务 dnsmasq restart 的脚本
service dnsmasq restart
dnsmasq: unrecognized service
无论我调用什么 dnsmasq,它都会给我“无法识别的服务”错误。
另外,如果我输入 dnsmasq restart 我会得到
dnsmasq restart
dnsmasq: junk found in command line
我尝试过自动删除并重新安装 dnsmasq。我在 Google 上搜索了这两种解决方法,但未找到任何解决方法。有人能帮忙吗?
谢谢!
答案1
该错误是由于软件包存在问题dns-root-data
。DNSmasq 不应该需要它,但它却需要它。请按照以下步骤操作:
sudo apt-get purge dnsmasq
sudo apt-get autoremove
sudo apt-get install dnsmasq
不要忘记重新插入您的配置(如果有)/etc/dnsmasq.conf
如果这不起作用,试试这个(至少在 Debian 9 和 Raspian 上有效)
sudo nano /etc/init.d/dnsmasq
上面写着
if [ -f $ROOT_DS ]; then
注释掉下一行(在行首添加 #),并将这一行放在其下方
`DNSMASQ_OPTS="$DNSMASQ_OPTS `mawk -- '{ printf " --trust-anchor=.,%d,%d,%d,%s", $5, $6, $7, $8 }' $ROOT_DS`"`
的结构/usr/share/dns/root.ds
已更改。字段以前仅用空格分隔,现在用制表符 (\t) 分隔