Насколько я знаю, сразу. Каждый раз, как только login захочет что-то из libpam, будет прочитан конфиг (конфиги), загружены соответствющие pam-модули (.so-файлы), выполнен код из них.
При логине читается только system и опционально инклюды, при запуске приложений, если у них есть свой конфиг — только его с фоллбэком на system, например при удалённом логине через ssh, на сервере будет дёрнут конфиг /etc/pam.d/sshd.
В линуксе формат и логика немного отличается, но принцип работы в целом тот же.
При входе через консоль getty запускает login, который читает /etc/pam.d/login. Если такого файла нет, читается /etc/pam.d/other. А чего туда наинклудили зависит от дистрибутива.
А вопрос, наверно, был про то, нужно ли что-то перезапускать после редактирования файлов в /etc/pam.d.
эти файлы и login в том числе в терминах PAM это сервисы,
воспользоваться этим может любая программа,
они подставляются тыжепогромистом в вызов int pam_start(const char *service_name, ...
А вопрос, наверно, был про то, нужно ли что-то перезапускать после редактирования файлов в /etc/pam.d.
Очевидно, нужно перезапускать то, чей конфиг редактировался. Или то, чей инклюд редактировался. А вообще, можно не перезапускать, если это не какой-нибудь sshd или другой сервис, а с простой приложенькой можно и забить.