networking - 如何禁用所有 systemd 网络配置功能并运行我的网络初始化 shell 脚本?
问题描述
我有一个网络初始化脚本
- 运行 wpa_supplicant
- 运行 dhcpcd
配置Wifi.sh
pkill -9 wpa_supplicant
pkill -9 dhcpcd
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
dhcpcd wlan0
我想禁用所有 systemd “网络配置”功能,因为它们不起作用并使我的系统在启动时挂起。我只想启动shell脚本。
我的 systemd 单元描述文件如下所示:
/lib/systemd/system/goodwifi.service
[Unit]
description=Good wifi service, initializes wifi without networkmanger
[Service]
ExecStart=/root/configureWifi.sh
type=oneshot
[Install]
WantedBy=network.target
# systemctl enable goodwifi
然后重新启动后未配置wifi。当我手动运行此脚本时,它可以 100% 运行。
有什么建议吗?
解决方案
您的服务可能在启动顺序中的错误时间运行。尝试至少添加After
和Before
属性来配置它。
我的建议是,让一切网络启动,然后启动您的服务。
这是从/etc/systemd/system/network.service
OpenSuse 盒子中获取的
[Unit]
Description=Network Manager
Documentation=man:NetworkManager(8)
Wants=remote-fs.target network.target
After=network-pre.target dbus.service
Before=network.target
此外,如果您的脚本位于标准 PATH 目录中会更好,也许/usr/local/sbin
.
ExecStart=/usr/local/sbin/configureWifi.sh
检查服务启动顺序
systemctl list-dependencies network.service
network.service
● ├─dbus.socket
● ├─system.slice
● ├─network.target
● ├─remote-fs.target
● │ ├─iscsi.service
● │ └─remote-fs-pre.target
● └─sysinit.target
● ├─detect-part-label-duplicates.service
● ├─dev-hugepages.mount
journalctl -b0
应该告诉你脚本是如何进行的。
推荐阅读
- node.js - Mongoose 用户、角色和权限
- html - Boostrap 活动项目无法正常工作
- azure-service-fabric - 服务结构 - 可靠的服务生命周期 - 可以在运行异步函数之前调用侦听器
- reactjs - 在 Material UI 中控制多个复选框
- flutter - Flutter中具有最小高度的扩展小部件
- c# - 从另一个类 c# 调用方法
- date - 使用 Freemarker 为 GeoServer GetFeatureInfo 格式化日期的问题
- sql - 检索每组中的三个最高值
- flutter - How do i get a loading screen while i fetch images from api?
- postgresql - bakup postgresql 数据库的推荐方法是什么:pg_dump VS pg_basebackup?