我正在编写几个systemd user
单元,其中一些单元需要依赖于system
单元wpa_supplicant@INT.service
。这些单元需要在wpa_supplicant@INT.service
启动时启动,并在其停止时停止。
我已经看到user
单元不能依赖于system
单元。那么,我该怎么做呢?
我必须以系统单位重写所有用户单位吗?看起来很不光彩,而且不是该走的路。
我希望避免创建一个检查wpa_supplicant@INT.service
状态的服务,并且希望直接由systemd的实例发出警报。
任何建议都将不胜感激,
谢谢你抽出时间。
我终于找到了两种方法。
我们可以使用系统中的systemctl与具有--user --machine=user@.host
参数的用户systemctl实例进行对话。
例如,在一个systemd系统单元中,我们可以启动这样的过程:
/bin/sh -c "systemctl --user --machine=$${USER}@.host stop wpa_service.target"
另一种方法是使用套接字与在用户级别运行的服务进行对话。然后,它将在用户会话级别执行任何操作,而不会出现任何问题。