技术解析

突然感觉好无奈,这个咋整? 让其先行一步
0
2021-07-09 20:38:48
idczone
试过多次就差那么几秒 , 蛋好疼....

本来想回复让你自己按摩一下的,进来居然看到标题改了~
dhcp比dnsmasq还慢?

After=network.target
我的dnsmasq.service有这么一条,不知道你的为什么是这样??

添加一个依赖,应该就行了

你这么一说,我查看了下更蛋疼


从时间上看貌似是的

你试试让dnsmasq在dhcp之后启动。。。。

写个脚本在开机之后 xx 秒再一遍跑 dnsmasq

改一下dnsmasq的init.d脚本 增加检测wlan0的IP 如果检测不到就sleep5

发行版本fedora,程序中没有...

总觉得这不是根本解决之道,肯定那里出问题了,亦或是bug ?

dhclient ?

真是日了狗


因为我用的是桌面系统,所以使用的是NetworkManager,NetworkManager管理了这一系列的启动,跟你的有点区别。但肯定的是dnsmasq启动太早了。
$ systemctl status NetworkManager.service
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: disabled)
Active: active (running) since 五 2015-08-14 10:08:48 CST; 1h 27min ago
Main PID: 555 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
├─ 555 /usr/bin/NetworkManager --no-daemon
├─2143 /usr/bin/dhclient -d -q -sf /usr/lib/networkmanager/nm-dhcp-helper -pf /var/run/dhclient-wlp3s0.pid -lf /var/lib/NetworkManager/dhclient-c7a9c963-908b-4cf4-91fe-81a2c810...
└─2151 /usr/bin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.0.1 --conf-file=/var...

的确,好多after=network.target都比network启动早,我还找不到原因,实在不行只能重做系统了......

systemd真是蛋痛的玩意,常出此类问题。

你也遇到了? 感觉bug一样

不是你这个问题,但常遇到各种unit不能按规则触发。对systemd总体感觉不好。

debian 8 的dnsmasq.service:
[Unit]
Description=dnsmasq - A lightweight DHCP and caching DNS server
Requires=network.target
[Service]
Type=forking
PIDFile=/var/run/dnsmasq/dnsmasq.pid
Test the config file and refuse starting if it is not valid.
ExecStartPre=/usr/sbin/dnsmasq --test
We run dnsmasq via the /etc/init.d/dnsmasq script which acts as a
wrapper picking up extra configuration files and then execs dnsmasq
itself, when called with the "systemd-exec" function.
ExecStart=/etc/init.d/dnsmasq systemd-exec
The systemd-*-resolvconf functions configure (and deconfigure)
resolvconf to work with the dnsmasq DNS server. They're called liek
this to get correct error handling (ie don't start-resolvconf if the
dnsmasq daemon fails to start.
ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf
ExecStop=/etc/init.d/dnsmasq systemd-stop-resolvconf

ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

service文件其实没什么差别 fedora 21 但没有/etc/init.d/dnsmasq这个文件

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服