2017-05-25 1 views
1

開始するには、Webサイトのフロントエンドと連携して動作するNodeJSアプリケーションを構築していました。これはビルドされ、私が望むのはPHP経由で起動することです。保存をクリックすると、必要に応じて起動します。PHPからノードを起動すると、PHPが動作しているようですか?

アプリケーションはwebsocketサーバーであり、クライアント(Webサイトのフロントエンド)からWebsocketとプロセスデータ/コマンドを受信します。

今、私は次のようにそれが起動して使用していますコード:

$command = '/usr/local/bin/node main.js & echo $!'; 
$processid = shell_exec($command); 

をしかし、何らかの理由で、私はそれだけでハングアップしてロードを維持し、フロントエンドに保存する]をクリックすると...しかしには何も表示しませんページ?私が使用しています

lsof -i tcp:8000 

と私は、ノードが動作しているプロセスを強制終了すると、ページにのみ読み込みを停止...

kill -9 <pid> 
を、私はそれをやって見ることができるように、それはプロセスを作成しますそれを殺すために

。ですから、私はなぜバックグラウンドでそれを実行していないのか、そしてPHPスクリプトを終了していないのか、ちょっと分かりません。

ご協力いただければ幸いです。

一度注意してください、それはすべてコマンドラインから実行されるので、ファイルは別々のランチャークラスです。私がphpで実行し、いくつかのコードを追加して動作させると、他の何かから私は問題がある?

役立つ場合は、ウェブサイトが使用するフレームワークはJoomla 3.xであり、事前に感謝しています。私はMacBook Airのエルキャピタンの午前

は、 は、LinuxのCentOS

答えて

1

使用この上で動作する必要があります。 STDOUTとSTDERRの両方を抑制し、コマンドが完了するのを待たずにただちに戻る。

$command = '/usr/local/bin/node main.js > /dev/null 2>&1';

+0

こんにちは、このためのおかげで、私はnohupを使用してみましたが、私は次のエラーを取得する:nohupを:コンソールから切り離すことはできません:、そこにデバイス –

+1

こんにちはために不適切なioctlのを、私はこれを使用し、それが働きました私はstdoutを正しく管理していなかったので、PHPがぶら下がっていました。どうもありがとうございます! –

関連する問題