Как я могу настроить systemd для автоматического входа в мою среду рабочего стола, желательно без использования менеджера входа? Я использую Arch.
arch-linux
boot
systemd
fhucho
источник
источник
Ответы:
Это описано в Arch Wiki :
Это в основном копирует уже существующий
getty@.service
файл в новый файл,autologin@.service
который можно свободно модифицировать. Это скопировано,/etc/systemd/system
потому что именно там хранятся специфичные для сайта файлы модулей./usr/lib/systemd/system
содержит файлы модулей, предоставляемые пакетами, поэтому вы не должны ничего менять там.Затем вам нужно будет символически связать это
autologin@.service
с сервисом getty для tty, для которого вы хотите выполнить автоматическое исследование, например для tty1:До сих пор это все тот же
getty@.service
файл, что и в обычном файле, но самая важная часть - это изменение,autologin@.service
чтобы фактически автоматически входить в систему. Для этого вам нужно всего лишь изменитьExecStart
строку, чтобы прочитатьРазница между
ExecStart
строкойgetty@.service
иautologin@.service
заключается только в том,-a USERNAME
что agetty автоматически сообщает пользователю с именем пользователя USERNAME.Теперь вам нужно только сказать systemd перезагрузить его файлы демона и запустить сервис:
(Я не уверен, что служба запустится правильно, если вы уже вошли в tty1, возможно, самый безопасный способ - просто перезагрузиться, а не запускать службу).
Если вы затем хотите автоматически запустить X, вставьте в свой фрагмент следующий фрагмент
~/.bash_profile
( снова взятый из вики ):Вам нужно будет изменить свою версию,
~/.xinitrc
чтобы запустить среду рабочего стола, как это сделать, зависит от DE и, вероятно, также описано в вики Arch.источник
File exists
когда делаю символическую ссылкуln -sf /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
чтобы перезаписать его.Непосредственно измените файл
/etc/systemd/system/getty.target.wants/getty@tty1.service
(который является символической ссылкой/lib/systemd/system/getty@service
):Добавить
-a/--autologin USERNAME
в строку:Следовательно:
Вы также можете удалить
-o '-p -- \\u'
(как указано в текущей установке Arch), так как это запустит вход в систему,USERNAME
но все равно запросит пароль.После перезагрузки вы войдете в систему автоматически.
Ps Измените имя файла
getty@tty1.service
на то, в котороеtty
вы хотите войти.источник
IMO, Arch Wiki в настоящее время рекомендует гораздо более простое решение:
Либо запустите помощник (
systemctl edit getty@tty1
), либо сделайте то, что я сделал вручную:Текст, который вы хотите ввести (любым из способов): ( обязательно измените имя пользователя соответствующим образом ):
ПРИМЕЧАНИЕ : пустая строка важна! (правда, я не уверен, почему ...)
Теперь restart (
shutdown -r 0
) и что-то в этом роде... login: username (automatic login)
произойдет, если он ранее заблокирован в ожидании ввода имени пользователя / пароляПосле перезагрузки и автоматического входа в систему, если вы похожи на меня и хотите использовать SSH в этой системе сейчас, вам, вероятно, нужно выполнить:
Который создаст символическую ссылку (например
ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service'
)источник
/sbin/agetty
, поэтому стоит/etc/systemd/system/getty.target.wants/getty@tty1.service
сначала проверить исходный файл.