Python:自动刷新本地PHP文件

0 投票
4 回答
612 浏览
提问于 2025-04-17 05:20

我正在我的服务器上尝试执行一个简单的脚本,目的是通过Python每45秒自动运行一次PHP脚本:

import os
import time

while(1):                                              
    os.spawnl(os.P_NOWAIT, "twitter_clean.php")
    print "checked twitter"
    time.sleep(45)

这个PHP脚本是用来检查Twitter,处理一些数据并把它们添加到数据库里。这个脚本看起来循环得很好,但似乎没有调用或执行PHP脚本……使用os.spawnl(os.P_NOWAIT, "twitter_clean.php")这个命令对吗?

另外,一旦我通过终端执行了Python脚本,如果我关闭与服务器的SSH连接,它还会继续运行吗?

4 个回答

1

如果你想在关闭会话后让程序继续运行,可以使用nohup命令。不过,如果你需要长期运行这个程序,那就得用cron来定时调用PHP程序(就像Jeff Day说的那样),或者让Python自动启动。你可以看看这个命令的帮助文档:man chkconfig。

1

为什么不直接用crontab呢?让它每45秒运行一次有点难,不过如果你愿意把时间改成1分钟或者30秒,那就可以比用Python脚本简单得多了。

2

你应该使用 PHP-Cli 来运行那个文件,把它作为参数传进去。

import os
import time

while(1):                                              
    os.spawnl(os.P_NOWAIT, "/path/to/php-cli twitter_clean.php")
    print "checked twitter"
    time.sleep(45)

如果想让它一直运行,可以试着把它做成一个守护进程:如何在 Python 中创建守护进程?

撰写回答