Linux

at 命令生成的環境變數

  • September 30, 2012

在使用 PHP執行命令後,我正在/var/spool/cron/atjobs/a001cf01570e44使用.cat``at``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通過 apache 在 php 腳本中執行,因此您在腳本中看到的是 apache 正在執行的環境等。

引用自:https://serverfault.com/questions/433313