2016-12-05 21 views
0

私はTomcatサーバーを起動できるようにするための小さなツールを構築しています。電子は開いたままにしておきます。cmd.exe

かなり簡単です。ボタンをstartup.batに、もう1つをshutdown.batとしてください。

これはかなりうまくいく(サーバーの起動と停止)が、完全に忍者モードでは、ログを使ってTomcatコンソールを取得することはできません。 古典的なコマンドラインからstartup.batを呼び出すと、内部にログを含むウィンドウが開きます。 私はexecexecFilespawnを試しました。私はbatcmd.exeと直接電話してみましたが、startも試しました。しかし、私は窓を得ることができません。

私はストリームを得ることができますが、私はそれを気にしたくありません。

また、私はちょうどWindows上のツールを使用しています、今は他のプラットフォームについて考える必要はありません。

const ipc = require('electron').ipcMain; 
const execFile = require('child_process').execFile; 

ipc.on('start-local-tomcat', function (event) { 
    execFile('cmd.exe', ['D:\\DEV\\apache-tomcat-8.0.12\\bin\\startup.bat'], 
    {env: {'CATALINA_HOME': 'D:\\DEV\\apache-tomcat-8.0.12'}}, 
    function (error, stdout, stderr) { 
     console.log('stdout: ' + stdout); 
     console.log('stderr: ' + stderr); 
     if (error !== null) { 
     console.log('exec error: ' + error); 
     } 
    }) 
}); 

ipc.on('stop-local-tomcat', function (event) { 
    execFile('cmd.exe',['D:\\DEV\\apache-tomcat-8.0.12\\bin\\shutdown.bat'], 
    {env: {'CATALINA_HOME': 'D:\\DEV\\apache-tomcat-8.0.12'}}, 
    function (error, stdout, stderr) { 
     console.log('stdout: ' + stdout); 
     console.log('stderr: ' + stderr); 
     if (error !== null) { 
     console.log('exec error: ' + error); 
     } 
    }) 
}); 

答えて

0

最後に、私はちょうど私がしたい正確に何でしょうdetachedと呼ばれるパラメータがあり、十分なドキュメントを読んでいない:

var child = spawn(
    'D:\\DEV\\apache-tomcat-8.0.12\\bin\\startup.bat', 
    { 
     env: {'CATALINA_HOME': 'D:\\DEV\\apache-tomcat-8.0.12'}, 
     detached: true 
    } 
); 
関連する問題