2016-03-22 8 views
0

とのインタフェースには?実行されていない場合、Node.jsがサービスを開始/再開できるようにします。また、MySQLのような他のプロセスを実行するために同じコードを使用できますか?使用Node.jsのは、Apacheサービスがノードで実行されている場合、プログラムで確認する方法はあります私は <p>Ubuntuの</p>上で実行されているApacheの持っているとのNode.jsのbash

また、私はNode.jsの子プロセスを見て持っていたノードが「PS -uユーザー」を実行し、JS文字列に出力をキャプチャするか、または

オブジェクトする方法を見つけるしたいのですが、私は事前にアウト

おかげでそれを把握することはできません

答えて

1
あなたはノードアプリからコマンドを実行するには、「 child_process」モジュールの「実行」メソッドを使用することができますし、その出力は、コールバックへのパラメータとして渡されている

関数。

var exec = require("child_process").exec; 

exec("ps -u user", function (error, stdout, stderr) { 
    var myResult = stdout; 
    //doSomething 
}); 
1

またshelljsを使用することができます - https://www.npmjs.com/package/shelljs、多くの機能を持っているシェルに直接行き、クロスプラットフォームです。 psコマンドはそれらのうちの1つではありませんので、execをchild_processと同様に使用してください。

require('shelljs/global');  
exec('ps -aux | grep apache') 

execを使用すると、サービスを開始/再起動することもできますが、rootとしてノードプロセスを実行する必要があります。これは最適ではないオプションです。または、特にApache用のusergroupを作成します。

'ps -u user'を実行するには、同じものを使用します。プロセスについて必要なすべての情報を持つオブジェクトを返します。

exec('ps -u user'); 

そして、必要に応じて出力を続けます。

0

スポーンでシェルスクリプトを実行できます。ですから、プロセスが実行されているかどうかを確認するためにシェルスクリプトが書かれていたら、thisのようなものを実行して実行する必要があります。何かのような... var child = spawn('sh', [__dirname+'/some-status-shell-script.sh'], {env: process.env});

同様にあなたがthis

にあなたのmysqlのdb ...似にアクセスするために卵を使用することができます
関連する問題