系统用户单位取决于系统目标



我正在编写几个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"

另一种方法是使用套接字与在用户级别运行的服务进行对话。然后,它将在用户会话级别执行任何操作,而不会出现任何问题。

最新更新