php - PHP 能否检测它是从 cron 作业还是从命令行运行?

标签 php cron

我正在寻找让 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/

相关文章:

php - 为多个 cron 作业维护单个数据库连接

java - Google Appengine 数据存储区超时异常

php - cron 作业不会写入文件

php - 像facebook消息系统一样计算时差

php - 作为页面发布到 Facebook 页面墙

php - Laravel:PHP Artisan Migrate 抛出 PDO 异常:找不到驱动程序 (Postgres)

java - 如何使用并发执行器 future 在java中的固定时间后使方法超时?

javascript - 如何使用JS显示数据库中的图片

php - 如何使用不限于类范围的全局类?

linux - cron 作业 - Selenium - org.openqa.selenium.firefox.NotConnectedException