2

我在我的 arch linux 设置上安装了 neo4j,并且能够手动启动服务器(sudo neo4j start)。但是,当我尝试使用systemctl start neo4j,我得到

Job for neo4j.service failed. See 'systemctl status neo4j.service' and
'journalctl -xn' for details.

错误消息中的任何建议都没有提供任何帮助。我有/usr/lib/systemd/system/neo4j.service:

[Unit]
Description=Neo4j

[Service]
User=root
Type=forking
ExecStart=/usr/bin/neo4j start
ExecStop=/usr/bin/neo4j stop
PIDFile=/run/neo4j/neo4j-service.pid
#LimitNOFILE=40000

[Install]
WantedBy=multi-user.target

我尝试在 neo4j 和 root 之间更改用户,并且在我尝试在 security/limits.conf 中设置限制之前,我最初没有注释掉 LimitNOFILE(它在正常启动时消除了文件编号错误)。AUR 中提到了此设置,但我无法使其正常工作。任何帮助表示赞赏!

4

2 回答 2

5

我刚刚尝试在一个新的 Arch VM 上设置 Neo4j,这已经成功了。我遵循的步骤是:

  1. 引导
  2. 通过运行安装wgetjdk7-openjdkpacman -S wget jdk7-openjdk
  3. 使用从 AUR 下载 Neo4j 包wget https://aur.archlinux.org/packages/ne/neo4j/neo4j.tar.gz
  4. 解压包tar xvf neo4j.tar.gz
  5. 更改目录cd neo4j
  6. 使用构建包makepkg(从 dist.neo4j.org 下载 Neo4j)
  7. 安装pacman -U neo4j-2.1.5-1-any.pkg.tar.gz
  8. 根据安装期间收到的消息,创建配置以指向已安装的 JDK:
    • mkdir /etc/systemd/system/neo4j.service.d
    • echo "[Service]" >> /etc/systemd/system/neo4j.service.d/java_home.conf
    • echo "Environment=JAVA_HOME=/usr/lib/jvm/default" >> /etc/systemd/system/neo4j.service.d/java_home.conf
  9. 启动服务器systemctl start neo4j.service
  10. 检查服务器是否正在运行curl http://localhost:7474/db/data/

如果可行,将显示 JSON 响应。

由于我无法准确说出您安装的步骤或文件系统的外观,因此您最好的选择可能是将您所经历的步骤与上述步骤进行比较,看看差异在哪里。

猜测一下,我建议先查看您的 Java 安装,看看该服务是否在查找 Java 运行时时遇到问题。这当然是整个过程中最繁琐的部分。

注意:我在这里使用了 JDK,但我不明白为什么jre7-openjdk包不能正常工作。

于 2014-10-16T11:36:15.613 回答
1

您是否尝试为文件/usr/lib/systemd/system/neo4j.service添加此修改后的行?

[Unit]
Description=Neo4j

[Service]
User=neo4j
Type=forking
RuntimeDirectory=neo4j
RuntimeDirectoryMode=770
ExecStart=/usr/bin/neo4j start
ExecStop=/usr/bin/neo4j stop
ExecReload=/usr/bin/neo4j restart
RemainAfterExit=no
Restart=on-failure
PIDFile=/run/neo4j/neo4j-service.pid
LimitNOFILE=60000
TimeoutSec=600

[Install]
WantedBy=multi-user.target
于 2017-02-04T08:49:31.870 回答