at命令生成的环境variables

我使用exec()PHP运行at命令后,用cat检查/var/spool/cron/atjobs/a001cf01570e44

它看起来像是at脚本中join了许多APACHE环境variables。

 #!/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 

最后一行是我通过stdin发送的唯一真正的命令。 这些variables的目的是什么? 这个程序存储在哪里?

当你调用at命令时,它复制当前的环境,这就是你所看到的。

工作目录,环境(variablesTERM,DISPLAY和_除外)和umask在调用时保留。

你正在通过apache在php脚本中运行at所以你在脚本中看到的是apache运行的环境等。