Так что я постоянно учусь sysVinit. Я знаю, что при запуске /bin /login нужно запустить, чтобы отобразить приглашение на вход, но я не смог найти файл, который его запускает. Он запускается по умолчанию в терминалах, указанных в inittab, или что там происходит?

1 ответ1

2

Он запускается getty после ввода имени пользователя.

  1. Init запускает /bin /agetty (или другой getty) на каждом терминале, в соответствии с inittab
  2. Getty инициализирует терминал, показывает /etc /issue и приглашение «login:»
  3. Пользователь вводит логин
  4. Getty execs /bin /login с именем пользователя в качестве параметра
  5. Логин показывает запрос пароля (внутренний или из PAM)

(Примечание: вход в систему также использовался для удаленных входов в Telnet (хотя не для входа в систему через ssh), и процесс был похожим: telnetd отображал бы приглашение имени пользователя и запускал вход в систему для запроса пароля)

В systemd процесс почти такой же: init запускает agetty в соответствии с getty@<tty>.service , а agetty запускает логин.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .