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