当我运行命令“neo4j status”或“neo4j stop”时,它显示“Neo4j not running”,但是浏览器可以访问,我可以在数据库上执行所有事务。 当我在 neo4j.conf 上更改数据库并运行 neo4j start 时,数据库也不会更改。
谢谢Govind,你给了我一个开始,我想我发现了问题,因为我不知道neo4j正在以与/var/run/neo4j/neo4j.txt中生成的不同的某个pid运行。 pid,当我用正在运行的程序覆盖 neo4j.pid 时,我能够停止 Neo4j 并启动一个干净的进程。
我使用最新的 GCP 公共映像
neo4j-community-1-4-3-6-apoc
遇到了这个问题,该映像使用的是 Neo4j Community 4.3.6。
启动行为是status命令认为Neo4j没有运行:
$ /usr/share/neo4j/bin/neo4j status
Neo4j is not running.
因此,尝试
stop
不会执行任何操作,因为系统认为它一开始就没有运行:
$ sudo /usr/share/neo4j/bin/neo4j stop
Neo4j is not running.
但应用程序显然正在运行,如
curl
输出所示:
$ curl http://localhost:7474/
{
"bolt_routing" : "neo4j://localhost:7687",
"transaction" : "http://localhost:7474/db/{databaseName}/tx",
"bolt_direct" : "bolt://localhost:7687",
"neo4j_version" : "4.3.6",
"neo4j_edition" : "community"
}
Neo4j 也清晰地出现在正在运行的进程列表中(下面的截断输出):
$ ps -U neo4j -u neo4j u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
neo4j 1021 0.1 2.9 2202544 111492 ? Ssl 16:21 0:05 /usr/bin/java -Xmx...
neo4j 1615 1.1 16.6 3269476 625720 ? Sl 16:21 0:52 /usr/lib/jvm/java-...
要解决此问题,请首先创建缺少的运行目录并将目录所有者设置为
neo4j
用户:
sudo mkdir /var/run/neo4j
sudo chown neo4j /var/run/neo4j
然后通过发送中断(-2)信号来停止neo4j的运行实例:
sudo kill -2 1021
再次检查
ps
以验证其是否有效:
$ ps -U neo4j -u neo4j u
启动该进程,以
neo4j
用户身份运行它(同时,设置 NEO4J_CONF
shell 变量指向 neo4j.conf
所在的目录):
$ sudo -u neo4j env NEO4J_CONF=/etc/neo4j sh -c '/usr/share/neo4j/bin/neo4j start'
验证 neo4j 是否正在运行,检查活动进程(截断的输出):
$ ps -U neo4j -u neo4j u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
neo4j 3803 14.9 15.5 3250848 587740 pts/0 Sl 17:47 0:22 /usr/lib/jvm/java-...
最后,验证
status
现在是否正确符合现实:
$ /usr/share/neo4j/bin/neo4j status
Neo4j is running at pid 3803
听起来您运行
neo4j status
和 neo4j stop
命令的计算机与您正在使用的 Neo4j 浏览器服务运行的计算机不同。
如果你想控制neo4j浏览器服务,你需要在正确的机器上运行这些命令。
您是否以root用户身份运行neo4j状态? 有时,当您以非 root 用户身份运行 neo4j status 并以非 root 用户身份启动它时,它会给您该消息。
我刚刚偶然发现了同样的问题,即 neo4j 进程正在运行,但
neo4j status
却说不然。
就我而言,这是由于初始安装/配置期间发生的意外,导致没有创建运行文件夹:
/var/run/neo4j
。由于这是 Neo4j PID 文件的存储位置,因此它会导致 neo4j status
认为该进程没有运行,尽管实际上它是运行的。
我能够通过手动终止进程并再次启动 Neo4j 来确认行为,之后我收到了:
....
Starting Neo4j.
/usr/share/neo4j/bin/neo4j: line 451: /var/run/neo4j/neo4j.pid: No such file or directory
通过简单的操作为 Neo4j 创建运行文件夹后,问题就消失了:
(sudo) mkdir /var/run/neo4j
我看到这个错误是因为我已经使用官方仓库中的 maven 构建了 neo4j zip。后来我在这里下载了预构建的 zip:http://dist.neo4j.org/neo4j-community-3.15.0-windows.zip,这个使用了所有相同的步骤。
Neo4j 浏览器在我的情况下无法访问,但 http 端点正在工作。
如果您的neo4j无法在桌面上运行。您可以虚拟地使用它。