aloof
(aloof)
1
再请教一下,NetworkManager.service 在哪呢?
说明一下,我需要的是可以预先保存的设置用于 SUSE Studio,而不是在运行中的系统里进行操作。
目前我的办法是修改 after.local,在系统启动过程末尾运行 NetworkManager。
这样做的效果似乎是以程序代替服务,对系统服务的开关、启停和 [YaST - 网络设备 - 网络设置 - 全局选项 ] 中的 网络设置方法 ] 选项 (默认为 ifup) 都没有造成影响,但能够解决系统托盘的" 网络管理" 部件显示"NetworkManager 未运行" 从而无法显示网络连接的问题——因为进程里面 NetworkManager 确实在运行。
@aloof 一帖一问是个好习惯。如果需要请私信任何一位版主将此回复单提出来做新帖。
- 你问的是 systemd 服务的默认安装路径,在 /usr/lib/systemd/system 下。
而个人写的服务需要放到 /etc/systemd/system 下。
- 你在自己计算机上想要开机自动运行 NetworkManager 可以
sudo systemctl enable NetworkManager
- 但是要想在 SuSE Studio 里用的话你可能没法运行这个命令。
教给你个方法:
3.1 去 /etc/systemd/system 下面
ls -l network.service
是不是看到
lrwxrwxrwx 1 root root 46 2 月 10 18:55 network.service -> /usr/lib/systemd/system/NetworkManager.service
而你现在的那个 ISO 上应该是这样:
lrwxrwxrwx 1 root root 46 2 月 10 18:55 network.service -> /usr/lib/systemd/system/network.service
所以很简单,你把这个软链接删掉再重做一个到 NetworkManager 的软链接就能满足你的需求了。
su
rm -rf /etc/systemd/system/network.service
ln -sf /usr/lib/systemd/system/NetworkManager.service /etc/systemd/system/network.service
玩去吧。
1赞
aloof
(aloof)
5
女王威武!
我这个系统实际情况是酱紫的:
这样重启后开启了 NetworkManager.service,也就改变了
[YaST - 网络设备 - 网络设置 - 全局选项 ] 中的 网络设置方法 ] 选项,
系统托盘中" 网络管理" 正常显示。
不过跟官方版的服务状况有一点差别:

托盘显示连接的问题得到了正规解决。
与开机运行 NetworkManager 程序的方法相比较,这种规范的方法禁用了 ifup / ifdown,
所以我打算不因为这个问题新建一个 build 了。
然后我可能要慢慢才能理解程序和服务的区别。
你没有必要 ln -sf NetworkManager-wait-online 和 NetworkManager-dispatcher 那两个服务。
之所以软链接 /usr/lib/systemd/system/NetworkManager.service 到 /etc/systemd/system/network.service 是为了掩盖 /usr/lib/systemd/system/network.service 这个服务,因为后者就是 ifup 模式。
系统会先去 /etc/systemd/system 查找,没有再去 /usr/lib/systemd/system 查找。就和软件会先去 home 文件夹找个人配置,没有再用 /etc 里的默认配置是一个原理。
你链接相同的服务过去是多次一举。
不链接那两个是 disable 的
如果系统会再找 /usr/lib/systemd/system/ ,那建软链接有什么用呢?
哦,那就链接吧。虽然还有更好的方法。
有什么用? “之所以软链接 /usr/lib/systemd/system/NetworkManager.service 到 /etc/systemd/system/network.service 是为了掩盖 /usr/lib/systemd/system/network.service 这个服务,因为后者就是 ifup 模式。”
仔细看帖子啊您。
@aloof 可以用 systemd 的 wants 机制。systemd 的文档不错的。你都开始研究制作系统了,那看文档还是必要的。
aloof
(aloof)
12
制作神马的太遥远了,我只是预装软件和个性化预设界面而已……
文档东一块西一块看了一点,还没摸清脉络,目前只搞懂了一个问题:
systemctl enable NetworkManager
等效于创建软链接。不知道为什么 systemctl 并不理会 NetworkManager-wait-online.service,要启用这个服务仍然需要手动创建一个软链接,尽管它和 NetworkManager-dispatcher.service 通常都是 Inactive 状态。
** 最后 ** 是把软链接文件直接弄到 SUSE Studio 里的问题,经折腾,这貌似是个 mission impossible。