【问题标题】:Stopping infinit loop from php script run in linux terminal停止在 linux 终端中运行的 php 脚本的无限循环
【发布时间】:2016-05-15 17:44:38
【问题描述】:

我目前正在学习如何在 php 中创建队列的教程。在 php 脚本中创建了一个无限循环。我简化了代码以便专注于手头的问题:

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

我使用 PuTTy(通过 SSH 连接)连接到我的共享主机帐户(godaddy)中的 linux 终端。如果我运行php queuefile.php,我知道它将毫无问题地运行(已经用有限的for循环而不是无限的while循环测试了代码)。

问题:一旦无限循环开始,我如何退出它?我已经在线阅读了创建“检查”代码的选项,如果它应该继续循环使用类似以下代码的内容:

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

虽然我很好奇是否有可以在终端中输入的命令,或者我可以按下的一组键会导致脚本终止。如果有任何终止脚本的方法,或者如果有更好的方法来进行之前的“检查”,我希望得到您的反馈!

【问题讨论】:

  • 我曾经在 Linux 机器上使用套接字运行聊天服务器。您可以使用 screen 在“屏幕”中托管应用程序,如果您想退出,只需打开该屏幕并使用 control + c

标签: php linux terminal exit


【解决方案1】:

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

您也可以在登录另一个会话时将其终止并执行一些ps aux | grep my-php-script.php 并查看它是否是您的程序,然后您可以使用pkill -f my-php-script.php 终止此进程。

【讨论】:

  • 工作就像一个魅力,谢谢!哦,你提到如果我用另一个会话登录。如果我已经在后台工作了一些东西,会像你说的那样杀死它:pkill -f queuefile.php?还是只有当我在同一个会话中调用 php 脚本时才有效?
  • @Webeng 它将在另一个会话中工作,您只需要在同一台机器上即可。
【解决方案2】:

我了解您想在您的服务器中创建 cron。因此,您应该通过 putty 登录您的服务器并创建 cron 作业。 例如: 登录后...

crontab -e

然后添加

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

【讨论】:

    猜你喜欢
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    相关资源
    最近更新 更多