#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