Передайте переменную в двойных кавычках в качестве аргумента Perl, он может обрабатывать специальные символы в переменных при замене:
perl -i~ -pe 'BEGIN { $replace = shift }
s/_PLACEHOLDER_/$replace/g
' "$text" "$file"
Проблема была решена путем добавления пользователя в файл /etc/passwd, а не исключительно на NIS.
Интересно. network-online.target
не загружается по умолчанию, поэтому я не думаю, что systemd-logind
что-то с ним делает; Я предполагаю, что logind не знает, что ему нужно дождаться, пока ваши данные о пользователе станут доступными...
Посмотрите nss-user-lookup.target
. Может быть, вы должны создать перепад -в файле, чтобы nss-user-lookup.target
получил Wants=
и After=
на network-online.target
.
Комментарий в nss-user-lookup.target
не выглядит так, как будто ваши потребности были ожидаемы. «Это существует в основном для реализаций, в которых отсутствует активация сокета/шины».
Насколько я знаю, в SSSD реализовано кэширование для автономного доступа. Так что, возможно, когда вы используете SSSD, он может просто работать, не заставляя все ждать Wi-Fi.
Похоже, что решения, не относящиеся к -SSSD, также могут обеспечивать кэширование для автономного доступа.но настройка по умолчанию может не кэшироваться достаточно долго:https://wiki.debian.org/LDAP/NSS#Offline_caching_of_NSS_with_nscd