2016-05-12 10 views
0

Ich betreibe einen Knoten-Server auf einem Linux-Debian-Core.
Ich verwende pm2, um alle Prozesse im Hintergrund auszuführen und zu überwachen.
Alles funktioniert ordnungsgemäß außer dem ElasticSearch-Server, ich bekomme eine Fehlermeldung, die ich nicht verstehe.Debian pm2 kann den ElasticSearch-Server nicht starten

SyntaxError: Unexpected token ILLEGAL 
    at exports.runInThisContext (vm.js:53:16) 
    at Module._compile (module.js:373:25) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 
    at Function.Module._load (module.js:300:12) 
    at Function._load (/usr/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:62:21) 
    at Object.<anonymous> (/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:46:21) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 

Wenn ich pm2 list tun die anderen Prozesse zu betrachten, ist dies das Ergebnis:

enter image description here

Der Befehl i verwenden, um die Elasticsearch Server zu starten ist einfach pm2 start ./bin/elasticsearch statt ./bin/elasticsearch was was ist das Docs sagt.

Ich werde den Elasticsearch Server lokal nur ausführen, so dass die richtige IP ist 127.0.0.1 Port 9200.
Ich sollte auch erwähnen, dass die elasticsearch Server DO funktionieren, wenn ich es normal laufen, ohne PM2.

Hier ist meine elasticsearch.yml Konfigurationsdatei.

cluster.name: swissnet 
node.name: "swissnet-data" 
node.master: true 
node.data: true 
path.data: ../local-data/ 
path.logs: ../local-logs/ 
ES_HEAP_SIZE: 300m 
network.host: 127.0.0.1 
http.port: 9200 
http.cors.enabled: true 
http.cors.allow-origin: "*" 
discovery.zen.ping.unicast.hosts: ["127.0.0.1"] 
discovery.zen.minimum_master_nodes: 3 
gateway.recover_after_nodes: 8 
gateway.expected_nodes: 10 
gateway.recover_after_time: 5m 
ES_JAVA_OPTS: "-Des.insecure.allow.root=true" 

Irgendwelche Ideen? Elasticsearch.yml Updates sind ebenfalls willkommen.

+0

Gibt es nützliche Informationen in Ihrer ES-Protokolldatei? – Val

+0

Die Protokolldatei wiederholt nur die Fehlermeldung "SyntaxError: Unexpected token ILLEGAL", das ist alles, was ich leider bekomme. Oder das ist das PM2-Fehlerprotokoll für ES, das ES-Protokoll wird nicht aktualisiert, wenn ich 'pm2 start./Bin/elasticsearch' starte. Keine einzige Reihe. –

+0

Aber das ist nicht die ElasticSearch Log-Datei. Können Sie '../ local-logs/swissnet.log' einchecken? – Val

Antwort

1

Sie benötigen Datei sh erstellen, zum Beispiel: ES_service.sh

#!/bin/bash 
sh /your_path/bin/elasticsearch 

dann PM2 Befehl ausführen:

pm2 start ES_service.sh --name=elasticsearch 

überprüfen Sie Ihren Service mit PM2 Liste ich es in Ubuntu verwendet wurde und Centos 7, alles ok vielleicht helfen, es

Grüße