Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要在服务器上运行一个作为任务编写的PHP脚本_Php_Linux_Ssh_Cron - Fatal编程技术网

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

我需要在服务器上运行一个作为任务编写的PHP脚本,php,linux,ssh,cron,Php,Linux,Ssh,Cron,我需要运行一个PHP脚本,它正在抓取一个网站的数据,我需要在我的VPS上运行它,它有linux。我想把它作为一个任务来运行,这样我就可以注销我的VPS,并且脚本应该在后台继续运行 我读过关于CRON作业的文章,但更多的是关于调度和重复性任务;但是我只需要PHP脚本一次 PHP中有没有一种方法可以做到这一点?请帮帮我,我只是个新手 提前谢谢!: 我试过把它当作一个CRON工作,但它似乎不符合我的确切目的 所以我从终端运行我的脚本 php scrapethewebsite.php 然后它显示了这一

我需要运行一个PHP脚本,它正在抓取一个网站的数据,我需要在我的VPS上运行它,它有linux。我想把它作为一个任务来运行,这样我就可以注销我的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

然后我应该能够注销或关闭我的连接。然后我应该能够关闭我的电脑并出去散步。

在SSH会话中运行这个,然后单击X并关闭它,它仍然会运行

nohup php scrapethewebsite.php >/dev/null 2>&1 &
要检查文件是否正在运行,请键入以下命令

top
您应该看到上面的php文件,然后按空格键更新列表 _____________________________________________________________________ 如果您的php脚本不时出现一些错误,或者刚用完执行时间,您希望在关闭时重新运行它。。您必须创建一个包含while循环的.sh文件,并在其上运行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脚本中有错误或其他问题,这将导致它无限制地反复运行。

是的,您可以在屏幕上执行此操作。该屏幕大部分时间已经安装在Linux VPS中。但是,你仍然可以通过命令获得

apt-get install screen
它使您能够在VPS中拥有多个屏幕,您可以在其中同时运行多个任务。 就像你一样。 使用命令获取屏幕

screen -S sessionname
sessionname将是您的屏幕名称。 你可以用命令来显示它/ CTRL+A,然后是D。 然后,您可以通过访问vps关闭putty或任何工具。 干得好。 有关更多信息,请点击此链接。

我一会儿就写一个答案。。它的名字叫nohupI,这是不久前写的——它可以通过PHP在Linux和Windows中执行后台、非阻塞进程。我应该提到你能做的就是做一个发射器,这就是你所说的。在这段代码中,您可以启动后台进程。如果这有道理的话。