2016-05-15 98 views
0

我目前正在按照教程教导如何在php中创建一个队列。一个无限循环是在一个PHP脚本中创建的。我简化的代码,以便将重点放在问题手头:停止从Linux脚本中运行的PHP脚本的infinit循环

while(1) { 
     echo 'no jobs to do - waiting...', PHP_EOL; 
     sleep(10); 
} 

我用putty(与SSH连接)连接到Linux终端在我的共享托管帐户(godaddy的)。如果我运行php queuefile.php,我知道它会毫无问题地运行(已使用有限的代码循环而不是无限的而代码循环)测试代码。

问题:一旦启动后我怎么能退出无限循环?我已经在网上阅读创建代码的选项,“检查”是否应该继续的东西,如下面的代码循环:

$bool = TRUE; 
while ($bool) 
{ 
    if(!file_exists(allow.txt)){$bool = FALSE} 
    //... the rest of the code 

虽然我很好奇,如果有可能是一个命令,我可以键入终端或我可以推送的一组密钥将导致脚本终止。如果有任何方法终止脚本,或者如果有更好的方法来使之前的“检查”,我会爱你的反馈!

+0

我以前使用的是Linux机器上的插槽运行聊天服务器。 您可以使用屏幕在“屏幕”中托管应用程序,如果您想退出,您可以简单地打开该屏幕并使用控制+ c –

回答

2

按Ctrl +Ç应该停止在前台运行正在运行的程序。

当你在另一个会话中登录时,你也可以杀掉它,做一些ps aux | grep my-php-script.php,看看它是否是你的程序,然后你可以使用pkill -f my-php-script.php杀死这个过程。

+0

就像魅力一样工作,谢谢!哦,你提到,如果我登录另一个会话。如果我已经有一些在后台工作了,可以像你说的那样杀死它:'pkill -f queuefile.php'?还是只有工作如果我在同一个会话中调用PHP脚本? – Webeng

+0

@Webeng它将在另一个会话中工作,你只需要在同一台机器上,这就是全部。 –

+0

真棒,感谢您的反馈 – Webeng

0

我明白你的意思,你想在你的服务器上做cron。因此,您应该通过putty登录您的服务器并创建cron作业。 例如: 登录后...

crontab -e 

然后加入

1 2 3 4 5 /path/to/command arg1 arg2