2016-01-21 26 views
22

Próbuję uruchomić Elasticsearch 2.1.1 na moim komputerze z systemem Linux, którego jestem jej głównym użytkownikiem.Jak uruchomić Elasticsearch 2.1.1 jako root w maszynie Linux

Kiedy próbowałem wykonać Elasticsearch.I otrzymuję następujący błąd,

Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. 
     at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) 
     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) 
     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285) 
     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) 
Refer to the log for complete error details. 

odniosłem jakiś propozycja dostępna w internecie, wspominali go uruchomić jako inny użytkownik. Moim scenariuszem jest uruchamianie tylko jako użytkownik root. Jak pokonać ten problem bez uruchamiania jako inny użytkownik.

góry dzięki

+0

Nie wierzę, że istnieje sposób obejścia tego, musisz uruchomić go jako inny użytkownik ze względów bezpieczeństwa. – IanGabes

+0

Jest niezwykle niebezpieczne, aby uruchomić serwer sieciowy jako root. To się nie może zdarzyć. Szczególnie ta odpowiedź jest naiwna: http://askubuntu.com/a/16201/35185 Proszę odnieść się do tego wątku: http://askubuntu.com/questions/16178/why-is-it-bad-to-login- as-root – Semo

Odpowiedz

44

oparciu o następującym code-snippet wygląda powinieneś być w stanie to osiągnąć poprzez umożliwienie się z właścicielem es.insecure.allow.root

Przykład:

bin/elasticsearch -Des.insecure.allow.root=true 
+0

Dziękuję bardzo. Twoja sugestia załatwiła sprawę, ale teraz mam do czynienia z innym błędem. Wklejam błąd poniżej, "Wyjątek w wątku" główny "java.lang.IllegalStateException: Nie udało się uzyskać blokady węzła, czy można zapisać następującą lokalizację ?: [/ anvs/indexstore/mysample] Prawdopodobna przyczyna źródłowa: java.io. Wyjątek IOException: Brak dostępnych blokad w sun.nio.ch.FileDispatcherImpl.lock0 (Metoda macierzysta) w sun.nio.ch.FileDispatcherImpl.lock (FileDispatcherImpl.java:90) at sun.nio.ch.FileChannelImpl.tryLock (FileChannelImpl.java:1082) " – Mangoski

+0

czy sprawdziłeś uprawnienia folderu/anvs/indexstore/mysample? – keety

+6

Bieżąca odpowiedź nie działa już w najnowszej wersji elastycznej. – rjurney

3

Można również utworzyć alias

alias elasticsearch = 'elasticsearch -Des.insecure.allow.root = true'

Dodaj powyżej linii w bashrc pliku, po czym komenda elasticsearch zadziała.

+3

To już nie działa. – rjurney

+1

nie działa w wersji 5.4.0 –

+0

@BoPennings Tak, został przestarzały w wersji 5.X. Musisz utworzyć użytkownika innego niż root w tobie i musisz zmienić nazwę użytkownika i grupę elasticsearch na nowo utworzone -root użytkownika, a następnie musisz rozpocząć proces. – Mangoski

9
  1. Otwórz plik skryptu:

    vi bin/elasticsearch

  2. Dodaj nieruchomość do umożliwienia root:

    ES_JAVA_OPTS = "- Des.insecure.allow.root = true"

  3. Zapisz i zamknij.
  4. Możesz teraz zacząć od użytkownika root.

Powodzenia.

+5

To nie działa już w najnowszym wyszukiwaniu elatisc. – rjurney

+0

To działa dla mnie –

+0

nie działa w wersji 5.4.0 –

1

Należy zmienić właściciela i grupę elasticsearch-X.X.X i uruchomić jako ten użytkownik. Działa w elasticsearch-5.3.0