Почему переменные устанавливают в моем/etc/environment, обнаруживаются в моей среде крона?

В течение долгого времени я привык думать, что любая среда, которую я хотел в кроне, я в основном, должна была установить в самом crontab - посмотрите "Другую Среду", вероятный главный ответ здесь: Причины, почему crontab не работает

но... на моей недавней установке Ubuntu 14.04, у меня есть crontab, который похож на это:

*/1 * * * * env > /tmp/cron.env

/etc/environment файл, который похож на это:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
RACK_ENV=production
LC_ALL=en_US.UTF-8
FROM_ETC_ENVIRONMENT=testing

и вывод cron.env файл похож на это:

FROM_ETC_ENVIRONMENT=testing
HOME=/home/devops
LOGNAME=devops
RACK_ENV=production
PATH=/usr/bin:/bin
LANG=en_US.UTF-8
SHELL=/bin/sh
LC_ALL=en_US.UTF-8
PWD=/home/devops

FROM_ETC_ENVIRONMENT является переменной, которую я создал с тем уникальным именем, чтобы гарантировать, что это ниоткуда еще не могло возможно прибывать.

Я навел справки о документации относительно того, когда это, возможно, изменилось / и т.д... Я предполагаю, что мой вопрос - действительно это:

Действительно ли это - поведение, на которое я могу полагаться от продвижения Ubuntu 14.04? (Кто-либо знает, когда это было представлено? Или это всегда был этот путь, и я просто не понял это - главный ответ в Причинах, почему crontab не работает, в ссылке говорится, что крон не читает из/etc/environment вообще, но это, кажется, неправильно основано на моих тестах.

3
задан 13 April 2017 в 15:24

1 ответ

Тот ответ устарел (по крайней мере, тот раздел, который является от 2011 ). Если Вы осматриваете /etc/pam.d/cron:

$ grep pam_env /etc/pam.d/cron
# Read environment variables from pam_env's default files, /etc/environment
# and /etc/security/pam_env.conf.
session       required   pam_env.so
session       required   pam_env.so envfile=/etc/default/locale

pam_env модуль PAM, который загружается /etc/environment, и как Вы видите, он используется cron, по крайней мере, с 14,04. И я проверил 12,04 систем, и они также имели pam_env загруженный для cron.

6
ответ дан 1 December 2019 в 15:24

Другие вопросы по тегам:

Похожие вопросы: