проблемы с запуском neo4j (через SSH-Ansible)

#database #ssh #neo4j #vagrant #ansible

#База данных #ssh #neo4j #бродяга #ansible

Вопрос:

У меня возникли проблемы с запуском Neo4j на моей виртуальной машине. Остановка работает нормально. Я использую Ansible, который подключается к моей виртуальной машине через SSH, а затем запускает на ней команды оболочки. В принципе, я выполняю через SSH (Ansible):

 sudo service neo4j-service start

[...] Neo4j Server...process [13203]... waiting for server to be ready....... OK.nhttp://localhost:7474/ is ready."
  

Но затем, когда я проверяю идентификационный номер процесса 13203 на своей виртуальной машине, я ничего не вижу.
И поэтому, когда я пытаюсь остановить процесс, он «логически» завершается неудачей:

 sudo service neo4j-service stop
ERROR: Neo4j Server not running
  

Другими словами, либо сервер сообщает, что он запускается, когда этого не происходит, либо процесс neo4j по каким-то причинам прерывается (после завершения подключения по ssh или ??).

Но когда я лично подключаюсь к своей виртуальной машине через оболочку и использую:

 sudo service neo4j-service start
  

Процесс по-прежнему запускается нормально, и я могу его остановить…
Кто-нибудь может дать мне подсказку?

Комментарии:

1. вы нашли ответ? Я тоже столкнулся с этой проблемой. Я проверил журнал, и в нем говорилось, что «Завершение работы сервера Neo4j инициировано запросом». все еще не знаю, почему запрос останавливает сервер

Ответ №1:

почему вы запускаете команду для этого? Вы можете использовать встроенный service модуль, который должен более точно обращать внимание на сбои.

 - name: start neo4j
  service: name=neo4j status=started enabled=yes
  

Комментарии:

1. Это самый простой ответ, и он просто работает. Смотрите Комментарий tmtxt, чтобы узнать, почему моя команда не удалась.

Ответ №2:

Проблема в том, что Ansible запрашивает псевдо-tty для выполнения команды sudo. Чтобы исправить это, вместо прямого вызова команды с помощью команды module, используйте nohup execute эту команду с выводом на не-tty

 - name: start neo4j
  command: nohup sudo service neo4j-service stop
  

или вызвать скрипт neo4j напрямую

 - name: start neo4j
  command: nohup /path/to/neo4j/bin/neo4j start