【问题标题】:Mojolicious - can't start app with hypnotoadMojolicious - 无法使用 hypnotoad 启动应用程序
【发布时间】:2012-07-04 10:52:49
【问题描述】:

正如标题所说,我不知道为什么。唯一发生的是工作目录中出现的 hypnotaod.pid 文件。没有正在运行的进程,没有在定义的端口上监听。另外 - morbo 一切正常。

编辑:我已经跟踪了这家初创公司,http://pastebin.com/YWUSeMuu

EDIT2:查看上面的 strace 输出后,似乎 hypnotad 将另一个“.pl”附加到脚本文件中。我已将文件名更改为 myapp,冲洗,重复http://pastebin.com/NVK2rhu4

任何想法都非常受欢迎。

[root@fedora16 Mojo]# ./myapp.pl version
CORE
  Perl        (v5.14.2, linux)
  Mojolicious (3.02, Rainbow)

OPTIONAL
  EV              (4.11)
  IO::Socket::IP  (0.16)
  IO::Socket::SSL (1.76)

This version is up to date, have fun!

[root@fedora16 Mojo]# hypnotoad -t myapp.pl
Everything looks good!

[root@fedora16 Mojo]# hypnotoad  myapp.pl
Starting hot deployment for Hypnotoad server 29432.

现在的代码只是教程测试代码

use Mojolicious::Lite;

app->config(hypnotoad => {listen => ['http://*:3000']});
get '/' => {text => 'ALL GLORY TO THE HYPNOTOAD!'};
app->start;

【问题讨论】:

  • 你试过'curl localhost:3000'吗?催眠蟾蜍在 ps 中显示为“perl”。外汇。 'ps -ejH | grep perl'

标签: perl mojolicious


【解决方案1】:

我也遇到了这个问题。只是当我碰巧仔细阅读了hypnotoad doc 页面时,我才看到它说“侦听端口 8080”。果然,在我的浏览器中打开http://127.0.0.1:8080 加载了我的应用程序。

【讨论】:

    【解决方案2】:

    同样的事情发生在我身上,我删除了 app 目录中的 .pid 文件并再次启动 hypnotoad,它工作得很好! 希望这可以帮助。 M.

    【讨论】:

    • 对我来说几乎一样Can't create process id file "/var/run/datamap/hypnotoad.pid": Can't open file "/var/run/datamap/hypnotoad.pid": No such file or directory
    【解决方案3】:

    app->config之前添加plugin 'Config';到您的应用程序中

    如果应用程序未加载“配置”插件,则不应用配置

    PS。 Mojo 的作者不相信我plugin 'Config' 在通过 hypnotoad 运行应用程序时非常简单且不是预期的命令。

    请投票表明它必须记录在案 因为当前的 DOC 过于含蓄,无法理解

    【讨论】:

      【解决方案4】:

      首先要做的是尝试不同的端口(例如 3001),以防遇到 3000 的问题。然后尝试使用MOJO_LOG_LEVEL=debug ... 调用它,看看它是否提供更多信息。 确保您有一个名为“log”的可写目录并检查它的输出。

      【讨论】:

      • 端口更改 = 无效。使用可写的“日志”目录进行日志级别调试,但没有输出。同样,使用调试运行 morbo 会给出输出。
      • 你能不能尝试在前台运行它--foreground 看看有没有什么效果。
      • 不幸的是,两者都不是;我现在最好的是在第二个 strace 输出中 - 请参阅我在 OP 中的编辑。
      • 你的环境有问题;我很确定这与 Mojolicious 无关。我也在 linux 上使用 v3.02 试图重现你的症状。我无法重现添加“.pl”的怪异之处,也无法重现缺少日志文件或缺少命令行消息的情况。当您从 Mojolicious CPAN 版本运行所有测试时会发生什么?我的意思是针对您当前安装的文件,而不是通过cpan(m)
      • Mojolicious 拥有许多单元测试,可能测试比代码多(应该是这样)。因此,我建议您使用已安装的文件运行 t 目录下的所有内容。 (如果您通过cpanm 执行此操作,它将在部署文件之前对其进行测试,这不是我的建议。)
      【解决方案5】:

      我遇到了类似的问题,使用--foreground,我设法找到了很多关于用户'nobody'拒绝权限的警告,在更改用户参数后,问题得到了解决。

      很多事情都会导致hypnotoad失败,尝试检查端口、文件、用户、组权限等。

      【讨论】:

        【解决方案6】:

        我遇到过这个问题,每次都与文件权限问题有关。

        在所有情况下,morbo 都会运行,但 hypnotoad 不会。

        使用前景标志应该可以帮助您。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-14
          • 2020-12-01
          • 2018-08-01
          • 2020-06-06
          • 1970-01-01
          相关资源
          最近更新 更多