我在VM上启动Neo4j时遇到问题。 Stoping工作正常。 我使用Ansible通过SSH连接到我的VM,然后在其上启动shell命令。 基本上,我通过SSH(Ansible)执行:
sudo service neo4j-service start
[...] Neo4j Server...process [13203]... waiting for server to be ready....... OK.\nhttp://localhost:7474/ is ready."
但是当我在我的VM上检查进程ID号13203时,我什么也看不见。 并且,当我尝试停止该过程时,它因此“逻辑上”失败:
sudo service neo4j-service stop
ERROR: Neo4j Server not running
换句话说,要么服务器说它没有启动,要么neo4j进程由于某些原因(在ssh连接结束后,或者??)而被杀死。
但是当我个人通过shell连接到我的虚拟机并使用:
sudo service neo4j-service start
这个过程仍然很好,我可以阻止它...... 有人可以给我一个暗示吗?
答案 0 :(得分:3)
你为什么要运行命令呢?您可以使用内置的service
模块,该模块应该更准确地关注故障。
- name: start neo4j
service: name=neo4j status=started enabled=yes
答案 1 :(得分:2)
问题是Ansible请求伪tty来执行sudo命令。要解决这个问题,请使用nohup
执行该命令,输出为非tty
- name: start neo4j
command: nohup sudo service neo4j-service stop
或直接调用neo4j脚本
- name: start neo4j
command: nohup /path/to/neo4j/bin/neo4j start