Переменные окружения, сгенерированные командой
Я проверяю /var/spool/cron/atjobs/a001cf01570e44
с cat
после запуска at
команда из PHP с помощью exec()
,
Это выглядит как at
добавил в скрипт множество переменных окружения APACHE.
#!/bin/sh
# atrun uid=33 gid=33
# mail www-data 0
umask 22
APACHE_RUN_DIR=/var/run/apache2; export APACHE_RUN_DIR
APACHE_PID_FILE=/var/run/apache2.pid; export APACHE_PID_FILE
PATH=/usr/local/bin:/usr/bin:/bin; export PATH
APACHE_LOCK_DIR=/var/lock/apache2; export APACHE_LOCK_DIR
LANG=C; export LANG
APACHE_RUN_USER=www-data; export APACHE_RUN_USER
APACHE_RUN_GROUP=www-data; export APACHE_RUN_GROUP
APACHE_LOG_DIR=/var/log/apache2; export APACHE_LOG_DIR
PWD=/home/jordanarseno/webroot/public_html/myapp; export PWD
cd /home/jordanarseno/webroot/public\_html/myapp || {
echo 'Execution directory inaccessible' >&2
exit 1
}
curl -k http://localhost/myapp/crons/this_action/3
Последняя строка - единственная настоящая команда, которую я послал вместе с at
через стандартный ввод Какова цель этих переменных? Где хранится эта процедура?
1 ответ
Решение
Когда вы вызываете at
Команда копирует текущую среду, так что это то, что вы видите.
Рабочий каталог, среда (за исключением переменных TERM, DISPLAY и _) и umask сохраняются со времени вызова.
Ты бегаешь at
в скрипте php через apache, так что вы видите в скрипте среду и т.д., в которой работает apache.