Linux 启动期间如何设置gsettings?

Linux 启动期间如何设置gsettings?,linux,ubuntu,gnome,init,ubuntu-12.04,Linux,Ubuntu,Gnome,Init,Ubuntu 12.04,我有一个pxe服务器,它托管一个Ubuntu 12.04的实时映像,我想在上面启用VNC 通常,我会使用以下命令执行此操作: $gsettings set org.gnome.Vino已启用true 然而,由于这个实时操作系统存在于RAM中,所以每次启动时都需要这样做。问题是由于某些原因,它无法与/etc/init.d/…中的脚本一起工作。。。就我个人而言,我无法理解为什么gsettings在这种情况下不起作用 作为参考,这是我在/etc/init.d中使用的脚本: #!/bin/bash l

我有一个pxe服务器,它托管一个Ubuntu 12.04的实时映像,我想在上面启用VNC

通常,我会使用以下命令执行此操作:

$gsettings set org.gnome.Vino已启用true

然而,由于这个实时操作系统存在于RAM中,所以每次启动时都需要这样做。问题是由于某些原因,它无法与/etc/init.d/…中的脚本一起工作。。。就我个人而言,我无法理解为什么gsettings在这种情况下不起作用

作为参考,这是我在/etc/init.d中使用的脚本:

#!/bin/bash

log=/var/log/gsettings.log

#Needed for some reason.. received info from http://stackoverflow.com/questions/10374520/gsettings-with-cron
sessionfile=`find "${HOME}/.dbus/session-bus/" -type f`
export $(grep "DBUS_SESSION_BUS_ADDRESS" "${sessionfile}" | sed '/^#/d')

set_gsettings()
{
    echo "Inside set_gsettings" >> $log

    #Enable vino
    gsettings set org.gnome.Vino enabled true 2>&1 >> $log
    gsettings set org.gnome.Vino prompt-enabled false 2>&1 >> $log
}

case "$1" in
  start)
    echo "Inside IT-gsettings" >> $log
    set_gsettings
  ;;

  restart|reload|force-reload)
    /etc/init.d/IT-gsettings start
  ;;

  stop)
   :
  ;;

  *)
    log_success_msg "Usage: /etc/init.d/IT-gsettings {start|stop|restart|reload|force-reload}"
    exit 1
    ;;
esac

exit 0

简而言之,如何在启动时设置gsettings?

脚本可能在仍然没有可用会话时运行


如果它是一张livecd,并且您可以控制它,那么您可能需要更改模式中的默认值。对于vino,您应该更改
/usr/share/glib-2.0/schemas/org.gnome.vino.gschema.xml中的默认值

脚本是否可执行?您是否使用类似于
update rc.d
的东西安装了脚本?是的,我使其可执行,并使用update rc.d创建符号链接。事实上,我已经验证了脚本是否被执行(在脚本内部,gsettings会回显到我的日志文件中),但是当我检查Vino enabled键的值时,它仍然是false,即使没有错误消息。。。奇怪吧??