Назад | Перейти на главную страницу

переменные среды, созданные командой at

Я проверяю /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 через стандартный ввод. Каково назначение этих переменных? Где хранится эта процедура?

Когда вы вызываете at команда копирует текущую среду, так что вы видите именно это.

Рабочий каталог, среда (за исключением переменных TERM, DISPLAY и _) и маска umask сохраняются с момента вызова.

Ты бежишь at в php-скрипте через apache, поэтому то, что вы видите в скрипте, - это среда и т. д., в которой работает apache.