Answers:
在正常的Ubuntu destktop配置中,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)
sudo systemctl restart network-manager.service
。
service network-manager restart
虽然仍然可以工作..因为service
可以处理一些systemd命令。
只需运行以下命令:
sudo /etc/init.d/dnsmasq restart
只是重新启动网络管理器对我不起作用(因为不使用新的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设置。
我似乎dnsmasq
在Ubuntu 12.04 上运行了两个实例。以下似乎可以重新启动它们:
$ 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