我正在寻找让 PHP 检测脚本是从 shell 上的手动调用(我登录并运行它)运行,还是从 crontab 条目运行的方法。
我有各种用 php 编写的维护类型脚本,我已将它们设置为在我的 crontab 中运行。有时,我需要提前手动运行它们,或者如果出现故障/损坏,我需要运行它们几次。
这个问题是我还在任务中设置了一些外部通知(发布到 Twitter、发送电子邮件等),我不想每次手动运行脚本时都发生这些通知。
我正在使用 php5(如果它重要的话),它是一个相当标准的 linux 服务器环境。
有什么想法吗?
最佳答案
if (php_sapi_name() == 'cli') {
if (isset($_SERVER['TERM'])) {
echo "The script was run from a manual invocation on a shell";
} else {
echo "The script was run from the crontab entry";
}
} else {
echo "The script was run from a webserver, or something else";
}
关于php - PHP 能否检测它是从 cron 作业还是从命令行运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/190759/