魔法师
2024-01-11 19:44 deepin
gsettings 有几种情况
- 会话因素,如同 dbus 一样,虽然同在一个用户下,但登录的会话不一样时,也无法访问
- 第1点的场景有:ssh 登录,会话明显不同
- 第1点的场景有:systemd service 服务,纯 root 用户,是为服务级别会话,整个环境变量有个 USER PATH 加点 systemd 设置的进程变量就没了。
反面:
- 同在一个登录会话下,gsettings 控制当前登录用户的登录会话中所有运行的图形应用,dbus 的 session bus 也同在在该登录会话下
- 在 desktop 文件中,Exec=一个 shell 脚本,shell 脚本中写 gsettings 命令,双击,或launcher中点击打开的,这样是当前登录会话下执行的,没有任何问题。
- 写一个 shell 脚本,然后 ctrl+alt+t 打开终端应用,这样执行任何程序都是同一个登录会话下,可以执行 shell 脚本,gsettins 是正常的。
- 如果你在终端应用执行 sudo su ,你虽然在当前登录会话下,但你已经不是当前用户了。你相当于切换了工作者,虽然表面上是提升的权限,但所有者是 root ,你无法使用 gsettings。
以上,可能是我随便说的,具体的,请斟酌
Reply Like 0 View the author
gsettings命令为什么在命令行终端窗口可以执行,但是在sh脚本无法执行?