У меня есть простой скрипт /lib/systemd/system-sleep/start_my_lock
, и он не будет работать, когда система остановлена, я пытаюсь сделать i3lock моей блокировкой по умолчанию
#!/bin/bash
case $1 in
pre)
scrot /home/jappatel/tmp/screen.png
convert /home/jappatel/tmp/screen.png -scale 10% -scale 1000% /home/jappatel/tmp/screen.png
convert /home/jappatel/tmp/screen.png /home/jappatel/Pictures/Icons/lock.png -gravity center -composite -matte /home/jappatel/tmp/screen.png
i3lock -i /home/jappatel/tmp/screen.png
rm /home/jappatel/tmp/screen.png
;;
esac
Решение, я должен был запустить скрипт на своем локальном пользователе вместо корня
su jappatel -c <command>
и также выполнить и также указать дисплей с помощью
DISPLAY=:0
мой заключительный сценарий
#!/bin/bash
case $1 in
pre)
su jappatel -c "
DISPLAY=:0 scrot /home/jappatel/tmp/screen.png;
convert /home/jappatel/tmp/screen.png -scale 10% -scale 1000% /home/jappatel/tmp/screen.png;
convert /home/jappatel/tmp/screen.png /home/jappatel/Pictures/Icons/lock.png -gravity center -composite -matte /home/jappatel/tmp/screen.png;
DISPLAY=:0 i3lock -i /home/jappatel/tmp/screen.png;
rm /home/jappatel/tmp/screen.png"
;;
esac
Инструменты, которые полагаются на сервер дисплея или сеанс пользователя как scrot
или i3lock
не работайте из фоновых системных сценариев, потому что они не могут найти сервер дисплея и/или сеанс пользователя.
Необходимо установить DISPLAY
переменная среды перед вызовом этих инструментов с также
export DISPLAY=:0
или
DISPLAY=:0 <COMMAND>
Если по любой причине DISPLAY
должен иметь другое значение, корректируют его как подходящий. Можно проверить текущее значение из графической сессии с echo "$DISPLAY"
.
Поскольку больше информации об очень похожей проблеме видит, Как запустить приложение GUI от крона?
Можно протестировать сценарии для выполнения без связанных с сессией переменных среды при добавлении префикса их вызова env -i
, например.
env -i /lib/systemd/system-sleep/start_my_lock
который освобождает список переменной среды.
/mnt
, и Вы работаетеrm -rf /*
, it' s до свидания файлы Windows... – marcelm 10 April 2019 в 11:41