如何使用cron启动exec()PHP命令但不运行其中2个?

我无法理解这一点。
我有一个从Facebook API获取数据的脚本,这个脚本运行 每时每刻。 (使用set_time_limit(0);)</ p>

但是,有时Facebook API会出错并停止脚本。 因此,我希望每5分钟左右进行一次cron任务,检查脚本是否仍在运行,如果没有,则再次启动它。</ p>

我尝试了几件事,但它 看起来我不能从cron作业运行exec()命令,因为不同的用户权限或什么? 你们会怎么做?</ p>

我使用CentOS和PHP 5.3 + </ p>
</ div>

展开原文

原文

I just can't figure this out. I have a script that gets data from Facebook API and this script runs all the time. (using set_time_limit(0); )

However, sometimes the Facebook API gives errors and stops the script. Therefor, I would like to have a cron task every 5 minutes or so that checks to see if the script is still running and if not, starts it again.

I tried several things but it looks like I cannot run a exec() command from a cron job because of different user rights or something? How would you guys do this?

I use CentOS and PHP 5.3+

dongpangbu4016
dongpangbu4016 +Dmitri我几乎认为这整个问题现在都很愚蠢。该脚本实际上类似于TwitterStreamingAPI脚本,所以我认为这是它出错的地方。谢谢!
接近 9 年之前 回复
dongxian6715
dongxian6715 Facebook有类似Twitter的流媒体API吗?这将是一个像这样的脚本一直运行的唯一原因,否则您不需要这样做,只需每5分钟启动一个新脚本,解析您的响应并退出。
接近 9 年之前 回复
dongwen7423
dongwen7423 你需要什么exec()。难道你不能从crontask执行它吗?
接近 9 年之前 回复

3个回答



在不同的用户(例如root)下设置cron,这将解决任何权利问题。 但是,PeeHaa提出了一个很好的观点:如果这是一个cron脚本,没有理由使用exec,因为exec的工作是将命令发送到OS ...这些命令可以直接从crontab运行而不是让cron执行 一个php文件。</ p>
</ div>

展开原文

原文

Set up the cron under a different user (say, root), which will get around any rights issues. However, PeeHaa makes a good point: if this is a cron script, there's no reason to use exec, as exec's job is to send commands out to the OS... these commands can be run directly from the crontab rather than having cron execute a php file.

dousong9729
dousong9729 非常真实! 谢谢!
接近 9 年之前 回复



您可能希望创建一个更适合连续运行脚本的守护进程。 您可以使用PHP使用此PEAR包创建一个 System_Daemon </ p>
</ DIV>

展开原文

原文

You may want to look into creating a Daemon which is better suited to running a script continuously. You can create one using PHP with this PEAR package System_Daemon

dongyuxin5353
dongyuxin5353 对于那些感兴趣的人:这是一个很好的教程kevin.vanzonneveld.net/techblog/article/create_daemons_in_php
接近 9 年之前 回复
douqie6454
douqie6454 他,看起来非常好。 谢谢贾斯汀。
接近 9 年之前 回复



如果此过程非常频繁地运行,请在无限循环中运行它并暂停它。 不需要crontabs。</ p>

  while(true){

//魔法代码东西

sleep(60);

}
< / code> </ pre>
</ div>

展开原文

原文

If this process runs very frequently, run it in an endless loop and just sleep it. No need for crontabs.

while(true) {

   //magical code stuff

   sleep(60);

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问