Для тех, кто не знает, зазывала является в основном экраном входа в систему. В случае Lightdm а именно, существует несколько версий его:
Я должен знать, как получить использующуюся в настоящее время версию зазывалы. Пишущие сценарий решения приветствуются (предпочтительно Python, сценарии оболочки, жемчуг), но также и открыты для кода C. Идеально, решение работало бы как так:
$ ./get_greeter
kylin-greeter
pgrep -f lightdm | xargs -L 1 ps -o args --no-header -p
или pgrep -f kylin | xargs -L 1 ps -o args --no-header -p
не возвратите ничего, что указывает на /usr/sbin/kylin-greeter
lsof -p <LIGHTDM_PID>
также не обеспечивает понимания - нет /usr/sbin/kylin-greeter
среди списка./etc/lightdm/lightdm.conf
потенциал, но не идеальное решение, так как некоторые разновидности Ubuntu (такие как Kylin) явно не укажут сессию зазывалы в том файле. Я предпочел бы что-то более надежное.gsettings
не обеспечивает надежное средство определения зазывалы, используемой ни один - присутствие схем для unity-greeter
не означает, что я в настоящее время использую это.org.freedesktop.DisplayManager
сервис для системной шины не обеспечил понимания того, какая зазывала используется также.От нескольких быстрых тестов кажется, что единственный путь состоит в том, чтобы спросить сам LightDM:
$ lightdm --show-config |& awk -F= '/greeter-session=/{print $2}'
kylin-greeter
я начал тестировать с Ubuntu по умолчанию, затем установил lightdm-gtk-greeter
и установленный kylin-greeter
. В каждом случае это возвратило корректную опцию. Например, после редактирования /etc/lightdm/lightdm.conf
для добавления greeter-session=unity
, измененный вывод:
$ lightdm --show-config |& awk -F= '/greeter-session=/{print $2}'
unity
$ lightdm --show-config
[LightDM]
A backup-logs=false
[Seat:*]
B greeter-wrapper=/usr/lib/lightdm/lightdm-greeter-session
C guest-wrapper=/usr/lib/lightdm/lightdm-guest-session
D user-session=ubuntu
I greeter-session=unity
F xserver-command=X -core
I autologin-guest=false
I autologin-user=muru
I autologin-user-timeout=0
Sources:
A /usr/share/lightdm/lightdm.conf.d/50-disable-log-backup.conf
B /usr/share/lightdm/lightdm.conf.d/50-greeter-wrapper.conf
C /usr/share/lightdm/lightdm.conf.d/50-guest-wrapper.conf
D /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
E /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
F /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf
G /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.conf
H /usr/share/lightdm/lightdm.conf.d/95-kylin-greeter.conf
I /etc/lightdm/lightdm.conf
Примечание источник конфигурации.
Хорошо для основанных на человечности систем и всех других были работы альтернатив обновления в Вашем скрипте, который можно запустить update-alternatives --list lightdm-greeter |head -n1
для наблюдения то, что они используют в качестве lightdm зазывалы. Это должно, по крайней мере, показать значение по умолчанию lightdm зазывала. Я действительно знаю, мог ли Ваш сценарий закончить тем, что был поврежден пользователем, останавливающимся lightdm, и запускающий его с не defualt зазывала однако я не вижу логической причины сделать это. Если Вы хотите больше информации об этом, посмотрите альтернативы обновления человека. Если Вы не передаете результат по каналу того вывода, чтобы возглавить и иметь его, только отображают верхнюю строку, он покажет, что все lightdm зазывалы установили.