NetworkManager 在离线时杀死 apache

NetworkManager kills apache when going offline

当我关闭 WiFi 时,NetworkManager 终止了 apache2。这可以在'/var/log/apache/error_log'中看到:

[Sun Mar 01 13:25:55 2015] [notice] caught SIGTERM, shutting down

但是,如果我通过

手动关闭 WiFi,则不会发生这种情况
sudo ifconfig wlan0 down

当我断开与 WiFi 的连接时,NetworkManager 似乎进入状态 'inactive'。

这些是我关闭 WiFi 时“/var/log/messages”的一些内容:

Mar  1 13:25:52 raven NetworkManager[22393]: <info> (wlan0): device state change: activated -> disconnected (reason 'user-requested') [100 30 39]
Mar  1 13:25:52 raven NetworkManager[22393]: <info> (wlan0): deactivating device (reason 'user-requested') [39]
Mar  1 13:25:52 raven dhcpcd[350]: received SIGTERM, stopping
Mar  1 13:25:52 raven dhcpcd[350]: wlan0: removing interface
Mar  1 13:25:53 raven NetworkManager[22393]: <info> (wlan0): canceled DHCP transaction, DHCP client pid 350
Mar  1 13:25:53 raven NetworkManager[22393]: <info> NetworkManager state is now DISCONNECTED
Mar  1 13:25:53 raven dbus[16077]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Mar  1 13:25:53 raven NetworkManager[22393]: <warn> (pid 350) unhandled DHCP event for interface wlan0
Mar  1 13:25:53 raven NetworkManager[22393]: <warn> Connection disconnected (reason -3)
Mar  1 13:25:53 raven NetworkManager[22393]: <info> (wlan0): supplicant interface state: completed -> disconnected
Mar  1 13:25:53 raven NetworkManager[22393]: <warn> Connection disconnected (reason -3)

有没有办法从 NetworkManager "uncouple" apache2 下线时它不会被杀死

我有 gentoo 3.10.7-gentoo-r1,我正在使用 OpenRC(不是 systemd), NetworkManager 0.9.8.8 和 apache 2.2.25

同样的问题(多年的 Gentoo 用户)。

非常快速的解决方案: 作为 root,只需键入 apache1 这将使用与初始化脚本 /etc/init.d/apache2 相同的配置启动 apache。唯一的区别是它不会检查已启动的网络。

NetworkManager 停止然后停止的原因是初始化脚本的这一部分:

depend() {
        need net
        use mysql dns logger netmount postgresql
        after sshd
}

need net 部分告诉脚本此服务需要网络正常运行。在使用 NetworkManager 且没有网络连接的机器上,通过 WiFi 或有线网络,不会给出此条件并自动停止服务。

因此,作为第二个(仍然很老套)解决方案,您可以将这一行注释掉。