Я знаю, что этот вопрос задавался тысячи раз раньше, и, рискуя быть воспламененным, я все еще пытаюсь понять, как сделать так, чтобы и задачи cron, и сценарии cloud-init читали сценарии .sh в разделе /etc/profile.d
По данным /etc/profile
файла
Это не хорошая идея, чтобы изменить этот файл, если вы не знаете, что вы
делают. Гораздо лучше создать скрипт оболочки custom.sh в
/etc/profile.d/ для внесения пользовательских изменений в вашу среду, так как это
предотвратит необходимость слияния в будущих обновлениях.
Итак, я поместил скрипт внутри /etc/profile.d/myVars.sh
export myVar="myFolder"
При использовании интерактивных сценариев работает как положено, все сценарии могут читать myVar
Я сейчас создал задачу cron для перезагрузки
@reboot ec2-user /home/myScript.sh
И этот скрипт ссылается ${myVar}
. Однако myVar
никогда не читается, так как кажется, что папка /etc/profile.d
не читается задачей cron даже при установленном ec2-user
.
/home/myScript.sh
myvariable=$(whoami) --> reports as ec2-user
Неправильно ли ожидать чтения файлов в /etc/profile.d
при вызове через cron? Я также отмечаю, что использование ec2 use-data
также не работает при вызове с sudo -u ec2-user /home/myScript.sh
Как настроить неинтерактивные не входящие в систему оболочки для чтения из profile.d?