我需要运行一个PHP脚本,该脚本正在抓取网站以获取数据,并且需要在装有Linux的VPS上运行它。我想将其作为任务运行,以便能够注销我的VPS,并且脚本应继续在后台运行。
我已经阅读了有关CRON作业的信息,但它更多地用于计划和重复性任务。但是我只需要一次PHP脚本。
PHP中有没有办法做到这一点?请帮助,我只是这个的新手。
提前谢谢! :)
我已经尝试过将它作为CRON作业,但是它似乎并没有达到我的确切目的。
所以我从终端运行这样的脚本。
php scrapethewebsite.php
然后显示它
Started scraping at 10:03:00 20-03-2019
我无法注销或关闭我的vps / ssh连接。
我在寻找
php scrapethewebsite.php
Started scraping at 10:03:00 20-03-2019
,然后我应该可以注销或关闭我的连接。然后,我应该能够关闭PC并出去走走。.
答案 0 :(得分:1)
是的,您可以在屏幕上执行此操作。大多数情况下,该屏幕已安装在Linux VPS中。但仍然可以通过命令获得。
apt-get install screen
它使您能够在VPS中具有多个屏幕,您可以在其中同时运行多个任务。 喜欢你。 使用命令获取屏幕。
screen -S sessionname
sessionname将是您的屏幕名称。 您可以使用命令/ CTRL + A,然后按D。 那么您可以通过访问vps来关闭腻子或任何工具。 干得好。 有关更多信息,您可以点击此链接。 Screen in Linux
答案 1 :(得分:0)
在SSH会话中运行它,然后单击X并将其关闭,它仍将运行
nohup php scrapethewebsite.php >/dev/null 2>&1 &
要检查文件是否正在运行,请键入以下命令
top
您应该在那里看到php文件,然后按空格键更新列表
_____________________________________________________________________
如果您的php脚本有时会出现一些错误,或者只是用完了执行时间,而您想在关闭时重新运行它。.您必须创建一个.sh
文件,其中包含一个while循环,在其上运行nohup
,以便它在出现错误后重新运行php文件。
如果要在需要不时重新运行的php文件上使用nohup
,则应执行以下操作
$ echo 'while true ; do php scrapethewebsite.php ; done > /dev/null' > ~/php_run_loop.sh
$ chmod a+x ~/php_run_loop.sh
$ nohup ~/php_run_loop.sh
注意::如果您的php脚本中有错误或其他问题,将导致它一遍又一遍地运行,并且没有任何限制。