我需要在服务器上运行作为任务编写的PHP脚本

时间:2019-03-23 04:56:05

标签: php linux ssh cron

我需要运行一个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并出去走走。.

2 个答案:

答案 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脚本中有错误或其他问题,将导致它一遍又一遍地运行,并且没有任何限制。