我不知道如何重新启动 dnsmasq。
service dnsmasq restart
dnsmasq: unrecognized service
解决方案
重新启动网络管理器(其父级)
sudo service network-manager restart
答案1
在正常的 Ubuntu 桌面配置中,dnsmasq
通过 NetworkManager 调用,可以通过重新启动network-manager
服务来重新启动,即
$ pstree -sp $(pidof dnsmasq)
init(1)───NetworkManager(7731)───dnsmasq(7743)
$
$ sudo service network-manager restart
network-manager stop/waiting
network-manager start/running, process 7940
$
$ pstree -sp $(pidof dnsmasq)
init(1)───NetworkManager(7940)───dnsmasq(7953)
答案2
只需运行此命令:
sudo /etc/init.d/dnsmasq restart
答案3
简单地重新启动网络管理器对我来说不起作用(因为没有使用新的 DNS 设置)。
$ ps aux | grep dns
libvirt+ 2217 0.0 0.0 28200 668 ? S May30 0:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf
nobody 17685 0.1 0.0 32604 1560 ? S 14:39 0:01 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
那么在这里你需要运行:
sudo kill 17685
最后
sudo service network-manager restart
这也应用了新的 dnsmasq 设置。
答案4
我的 Ubuntu 12.04 上似乎有两个实例正在dnsmasq
运行。以下操作似乎可以重新启动它们:
$ sudo service network-manager restart
$ sudo stop lxc-net; sudo start lxc-net
示例结果:
$ for p in $(pgrep dnsmasq); do pstree -spu $p; done
init(1)───NetworkManager(19343)───dnsmasq(19417,nobody)
init(1)───dnsmasq(19623,lxc-dnsmasq)
$ sudo service network-manager restart
network-manager stop/waiting
network-manager start/running, process 20048
$ for p in $(pgrep dnsmasq); do pstree -spu $p; done
init(1)───dnsmasq(19623,lxc-dnsmasq)
init(1)───NetworkManager(20048)───dnsmasq(20066,nobody)
$ sudo stop lxc-net; sudo start lxc-net
lxc-net stop/waiting
lxc-net start/running
$ for p in $(pgrep dnsmasq); do pstree -spu $p; done
init(1)───NetworkManager(20048)───dnsmasq(20066,nobody)
init(1)───dnsmasq(20262,lxc-dnsmasq)
lxc-net
这里讨论重新启动:
https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/1043588