![为所有用户运行“systemctl --user daemon-reload”](https://linux22.com/image/227897/%E4%B8%BA%E6%89%80%E6%9C%89%E7%94%A8%E6%88%B7%E8%BF%90%E8%A1%8C%E2%80%9Csystemctl%20--user%20daemon-reload%E2%80%9D.png)
有时作为系统管理员,在更新 中的共享单元文件后/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 内置的方法)来做到这一点?