Запуск и остановка узлов поиска в окнах

Я пытаюсь запустить эластичный поиск как процесс и остановить его, не закрывая командную строку. Для создания нового процесса я использую:

C:\Users\User1\Desktop\Work\ElasticSearch\elasticsearch-1.3.1\bin>start /B elasticsearch
C:\Users\User1\Desktop\Work\ElasticSearch\elasticsearch-1.3.1\bin>start /B elasticsearch
C:\Users\User1\Desktop\Work\ElasticSearch\elasticsearch-1.3.1\bin>[2014-08-19 15:23:26,351][WARN ][bootstrap                ] jvm uses the c
lient vm, make sure to run `java` with the server vm for best performance by adding `-server` to the command line
[2014-08-19 15:23:26,433][INFO ][node                     ] [Batroc the Leaper] version[1.3.1], pid[5800], build[2de6dc5/2014-07-28T14:45:15
Z]

Процесс работает на порту 9200.

Как я могу получить PID или имя процесса, чтобы использовать taskkill для уничтожения этого процесса с помощью этой команды или чего-то подобного из уже открытой командной строки или из существующей командной строки, в которой выполняется процесс узла asticsearch:

taskkill /PID <pid>

Пид 5800(показанный в журнале процесса в консоли выше) не работает. В диспетчере задач Windows не было процесса с именем asticsearch. У него есть только процесс cmd для командной строки, в которой работает эластичный поиск, и когда я уничтожаю этот процесс, эластичный поиск также будет уничтожен.

3 ответа

Решение

Я бы установил и запустил Elasticsearch как службу Windows:

Пользователи Windows могут настроить Elasticsearch для запуска в качестве службы для запуска в фоновом режиме или запуска автоматически при запуске без какого-либо вмешательства пользователя. Это может быть достигнуто с помощью сценария service.bat в папке bin / folder, который позволяет устанавливать, удалять, управлять или настраивать службу, а также запускать и останавливать службу из командной строки.

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-service-win.html

Он позволяет запускать такие команды, как start и stop, чтобы запускать и завершать эластичный поиск из сценария, не отслеживая идентификаторы процессов или не открывая ту же командную строку.

ОБНОВИТЬ:

Чтобы запустить несколько экземпляров Elasticsearch одновременно с сервисами, вам нужно будет указать уникальный serviceid при установке сервиса:

Для сценария требуется один параметр (команда для выполнения), за которым следует необязательный параметр, указывающий идентификатор службы (полезно при установке нескольких служб Elasticsearch).

Что касается порта и IP-адреса, на котором работает ES, то он не должен отличаться, но я бы проверил ваши конфигурационные файлы (asticsearch.yml) и вашу конфигурацию регистрации (logging.yml). Более подробно о параметрах конфигурации здесь:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-configuration.html

Если вы устанавливаете Elasticsearch в качестве службы в Windows, вы можете запускать / останавливать с панели управления службами, более подробную информацию о запуске / остановке с использованием CMD см. В ссылке.

введите описание изображения здесь


Способ выше удобный и правильный. Я пробую другие способы остановить ElasticSearch и записать здесь,

Прежде чем узнать метод выше, сначала я предполагаю, что ElasticSearch может быть процессом в диспетчере задач, поэтому я нашел по имени и действительно нашел имя процесса ElasticSearch.exe, но после того, как я убью этот процесс, я все еще могу получить ElasticSearch Info от http://localhost:9200/ это порт ElasticSearch на моем компьютере, это означает, что ElasticSearch все еще работает.

Позже я пришел к выводу, что, может быть, я могу убить его portЯ нашел статью, использующую PowerShell для уничтожения процесса по порту, поэтому я запускаю PowerShell, затем выполняю Stop-Process -Id (Get-NetTCPConnection -LocalPort 9200).OwningProcess -Forceи это говорит мне:

Остановка процесса: не удается остановить процесс "Java (22356)" , Доступ запрещен。 + Остановить процесс -Id (Get-NetTCPConnection -LocalPort 9200).OwningProcess ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: CloseError: (System.Diagnostics.Process (java):Process) [Stop-Process],ProcessCommandException

это может быть вызвано тем, что вы не работаете от имени администратора, но по информации, которую я могу сказать, настоящий процесс, выполняющий ElasticSearch, java.exeи его идентификатор процесса 22356, после убийства java.exe с помощью диспетчера задач я не могу подключиться к http://localhost:9200/Это значит, что я успешно остановил ElasticSearch.

Вы можете остановить это, используя net stop elasticsearch

Сначала откройте powershell от имени администратора и выполните следующую команду:

      net stop elasticsearch
Другие вопросы по тегам