为所有用户运行“systemctl --user daemon-reload”

为所有用户运行“systemctl --user daemon-reload”

有时作为系统管理员,在更新 中的共享单元文件后/etc/systemd/user/,我想运行systemctl --user daemon-reload 对于所有用户。幸运的是系统248引入了一个方便的选项-M,它允许我连接到特定用户的用户守护程序:

sudo systemctl -M other-user@ --user daemon-reload

...但我需要为每个用户执行此操作。所以现在我通过脚本执行此操作:

for U in root $(ls /home); do
  sudo systemctl -M "$U@" --user daemon-reload
done

但是,这无法考虑没有主目录的用户或在其他地方有主目录的用户。我当然可以通过阅读和解析来处理这些情况/etc/passwd,但我觉得这会使问题变得过于复杂,甚至可能会重新发明轮子。

所以我的问题是,是否有一种更简单、更可靠的方法(理想情况下是 systemd 内置的方法)来做到这一点?

相关内容