3

小さなnetflowコレクター(ntopなど)で作業していて、プログラムの起動時にWebサーバーを生成したい(外部のWebサーバーを構成するように強制したくない)。フォークでアプリを起動する方法を理解するのに問題があります。これが私がしていることです:

#This is basically what the child process is doing.
#running this outside of my fork does the same thing.
use myApp;
use Mojo::Server;
use Mojo::Server::Daemon;
use Mojolicious::Commands;
my $daemon = Mojo::Server::Daemon->new( listen => ['http://*:5656'] );

Mojolicious::Commands->start_app('myApp');

myApp.pmには

sub startup
{
    my $self = shift();

    my $r = $self->routes;

    $r->get('/') => sub {
        my $self = shift;

        $self->render( text => "Howdy!!" );
    };

}

これを実行すると、次のようになります。。。

usage: ./FlowTrack.pl COMMAND [OPTIONS]

Tip: CGI and PSGI environments can be automatically detected very often and
     work without commands.

These commands are currently available:
  cgi        Start application with CGI.
  cpanify    Upload distribution to CPAN.
  daemon     Start application with HTTP and WebSocket server.
  eval       Run code against application.
  generate   Generate files and directories from templates.
  get        Perform HTTP request.
.
.
etc
.

私がやろうとしていることをしているドキュメント/例が見つかりません。私はちょうど正しい場所を探していないと確信しています。

4

1 に答える 1

4

理解した。とにかく、他の誰かがこれを行おうとしている場合、質問を入力すると、常に修正の種が植えられるように見えます。(アプリケーションにまだエラーがあり、テストが機能しなくなりますが、サーバーループが開始されています)

use MyApp;
use Mojo::Server;
use Mojo::Server::Daemon;
use Mojolicious::Commands;

my $daemon = Mojo::Server::Daemon->new( app => MyApp, listen => ['http://*:5656'] );

$daemon->run();

最後に、アプリをデーモンの新しい呼び出しに入れる例を見つけました。次に、新しい呼び出しでもループが開始されなかった可能性があることに気付いたので、そこで少し掘り下げました。質問を削除することを検討しましたが、他の誰かがそれが役立つかもしれないと思いました。

于 2012-09-01T16:18:25.440 に答える