Я пытаюсь «заблокировать» компьютер, запустив скрипт при загрузке, который включает блокировку, экран блокировки через 10 минут и требует пароль и т. Д. Я использую Ubuntu 12.04
Я пытался редактировать crontab, anacrontab, а также rc.local для запуска моего скрипта или вставки кода из скрипта в файлы, и я не могу заставить что-либо работать.
Есть идеи?
* это единственный способ заставить команды запускаться в скрипте вручную *
(su - $(logname) -c "gsettings set org.gnome.desktop.screensaver lock-enabled true")
(su - $(logname) -c "gsettings set org.gnome.desktop.screensaver lock-delay 600")
(su - $(logname) -c "gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend true")
(su - $(logname) -c "gsettings set org.gnome.desktop.screensaver user-switch-enabled false")
* Эти Команды работают, если они введены в терминал вручную *
gsettings set org.gnome.desktop.screensaver lock-enabled true
gsettings set org.gnome.desktop.screensaver lock-delay 600
gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend true
gsettings set org.gnome.desktop.screensaver user-switch-enabled false
Я также попытался вставить следующий код из других постов об использовании gsettings в cron безуспешно:
DISPLAY=:0
GSETTINGS_BACKEND=dconf
sessionfile=`find "${HOME}/.dbus/session-bus/" -type f`
export `grep "DBUS_SESSION_BUS_ADDRESS" "${sessionfile}" | sed '/^#/d'`
Также я дважды проверил, что мой скрипт был исполняемым и создан /home/username/.config/autostart/screenlock.desktop:
[Desktop Entry]
Type=Application
Exec=/path/screenlock.sh
Terminal=False
Hidden=true
NoDisplay=true
X-GNOME-Autostart-enabled=true
Name[en_US]=screen lock
Name=screen lock
Также добавление /path/screenlock.sh в bash.rc или .profile работать так же.
Вместо использования:
DISPLAY=:0
GSETTINGS_BACKEND=dconf
sessionfile=`find "${HOME}/.dbus/session-bus/" -type f`
export `grep "DBUS_SESSION_BUS_ADDRESS" "${sessionfile}" | sed '/^#/d'`
попробуйте использовать:
PID=$(pgrep gnome-session) # instead of 'gnome-session' it can be also used 'noutilus' or 'compiz' or the name of a process of a graphical program about that you are sure that is running after you log in the X session
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
См. Объяснение в моем ответе здесь .