我正在尝试wpa_supplicant
在较小的平板电脑上进行故障排除。平板电脑正在使用 systemd 运行一个wpa_supplicant.service
具有条目的程序
ExecStart=/usr/sbin/wpa_supplicant -u
我想停止此服务并wpa_supplicant
使用自定义配置运行,而不是使用 D-BUS 接口。所以我进入了
systemctl stop wpa_supplicant
停止原来的服务。命令成功,但不幸的是服务立即重新启动。这是最不幸的,因为多个实例wpa_supplicant
不能真正共存。
由于我对 systemd 不太了解:为什么服务立即重新启动?我怎样才能防止这种情况发生?这是由于我不知道的某些服务依赖性造成的吗?
整个服务定义由下式给出:
[Unit]
Description=WPA supplicant
Before=network.target
Wants=network.target
[Service]
Type=dbus
BusName=fi.w1.wpa_supplicant1
ExecStart=/usr/sbin/wpa_supplicant -u
[Install]
WantedBy=multi-user.target
Alias=dbus-fi.w1.wpa_supplicant1.service
编辑:已启动的服务是
CGroup: /
|-init.scope
| `-1 /sbin/init
`-system.slice
|-systemd-timesyncd.service
| `-154 /lib/systemd/systemd-timesyncd
|-crashuploader.service
| `-228 /usr/bin/crashuploader --path /home/root/
|-sync.service
| `-181 /usr/bin/sync --service
|-system-dropbear.slice
| `[email protected]:22-10.11.99.3:49522.service
| |-2831 /usr/sbin/dropbear -i -r /etc/dropbear/dropbear_rsa_host_key -B
| |-2832 -sh
| |-2841 systemctl status
| `-2842 less
|-dbus.service
| `-176 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
|-update-engine.service
| `-185 /usr/sbin/update_engine -foreground
|-system-serial\x2dgetty.slice
| `[email protected]
| `-180 /sbin/agetty -8 -L ttymxc0 115200 xterm
|-system-getty.slice
| `[email protected]
| `-179 /sbin/agetty -o -p -- \x5cu --noclear tty1 linux
|-wpa_supplicant.service
| `-2754 /usr/sbin/wpa_supplicant -u
|-systemd-logind.service
| `-217 /lib/systemd/systemd-logind
|-system-busybox\x2difplugd.slice
| `[email protected]
| `-175 /usr/sbin/ifplugd -n -i usb0
|-systemd-udevd.service
| `-135 /lib/systemd/systemd-udevd
|-systemd-journald.service
| `-134 /lib/systemd/systemd-journald
|-dhcpcd.service
| `-198 /usr/sbin/dhcpcd -4 -b --master wlan0
|-haveged.service
| `-133 /usr/sbin/haveged -w 1024 -v 1 --Foreground
|-systemd-networkd.service
| `-145 /lib/systemd/systemd-networkd
|-system-busybox\x2dudhcpd.slice
| `[email protected]
| `-1781 /usr/sbin/udhcpd -f /etc/udhcpd.usb0.conf
|-xochitl.service
| `-229 /usr/bin/xochitl --system
`-qmdns-responder.service
`-258 /usr/bin/qmdns-responder
答案1
您可以屏蔽某个服务以防止它被 systemd 启动。
赶紧跑systemctl mask wpa_supplicant.service
。这将阻止该服务被 systemd 启动,直到它被揭开。
您可以通过运行来取消屏蔽该服务systemctl unmask wpa_supplicant.service
。
请记住,这将阻止任何内容通过 systemd 启动服务,包括可能期望或需要该服务运行才能运行的其他服务。
从systemctl
手册页:
面罩单元... 按照命令行上的指定,屏蔽一个或多个单元。这会将这些单元文件链接到 /dev/null,从而无法启动它们。这是禁用的更强版本,因为它禁止所有类型的 单元的激活,包括启用和手动激活。请小心使用此选项。这遵循 --runtime 选项,仅暂时屏蔽,直到系统下次重新启动。可以使用 --now 选项 以确保机组也停止运行。此命令仅需要有效的单元名称,不接受单元文件路径。 取消屏蔽单位... 按照命令行上的指定,取消屏蔽一个或多个单元文件。这将撤销蒙版的效果。此命令仅需要有效的单元名称,不接受单元文件路径。