知识库

设置 Neo4j 服务以使用不同的服务 ID 运行

默认情况下,当通过 yum 或 apt-get 使用 RPM 安装 neo4j 时,它会创建一个用户 neo4j 和组 neo4j,并以 neo4j 用户身份运行。但是,可能需要将 Neo4j 服务作为除 neo4j 之外的其他服务 ID 运行。因此,在本文中,我们将了解如何配置服务 ID 以运行 Neo4j 服务。

为简单起见,假设活动在 Redhat 版本 7.x 上执行。

按照 Neo4j 操作手册文档中指定的说明安装 Neo4j Enterprise。 https://neo4j.ac.cn/docs/operations-manual/current/installation/linux/rpm/

安装 Neo4j 服务后,将创建一个名为 neo4j 的新用户和组。当使用 sudo systemctl start neo4j 启动 Neo4j 服务时,服务将由用户 neo4j 启动。

要将 Neo4j 服务设置为以其他用户身份启动,我们必须按照以下概述的步骤操作。

我们将使用用户 testuser 和组 testuser 来设置 neo4j 服务。

第一步是编辑 neo4j.service 并将用户和组更改为 testuser,以便服务可以以该用户和组身份启动。

 sudo vi /usr/lib/systemd/system/neo4j.service

如以下所示,通过更改 UserGroup 进行编辑。

[Unit]
Description=Neo4j Graph Database
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/home/rohan_kharwar/neo4j-enterprise-3.5.5/bin/neo4j console
Restart=on-failure
User=testuser
Group=testuser
Environment="NEO4J_CONF=/home/rohan_kharwar/neo4j-enterprise-3.5.5/conf" "NEO4J_HOME=/home/rohan_kharwar/neo4j-enterprise-3.5.5"
LimitNOFILE=60000
TimeoutSec=120

[Install]
WantedBy=multi-user.target

第二步是将以下文件的属主更改为 testuser:testuser。对于 RPM 安装

/etc/neo4j
/etc/neo4j/jmx.access
/etc/neo4j/jmx.password
/etc/neo4j/neo4j.conf
/var/lib/neo4j
/var/lib/neo4j/data
/var/lib/neo4j/data/databases
/var/lib/neo4j/import
/var/lib/neo4j/plugins
/var/log/neo4j
/var/run/neo4j

记录的步骤为

$ sudo chown testuser:testuser -R /etc/neo4j
$ sudo chown testuser:testuser -R /var/lib/neo4j
$ sudo chown testuser:testuser -R /var/log/neo4j
$ sudo chown testuser:testuser -R /var/run/neo4j

完成上述步骤后,文件属主应更改为 testuser。然后将 neo4j 服务启动为

$ sudo systemctl start neo4j

这应该会以设置的服务用户身份启动。

要验证 neo4j 服务是否以用户 testuser 身份启动,请执行 ps -ef | grep -i neo4j

输出应显示如下所示的 testuser

testuser  3296     1 26 18:00 ?        00:00:19 /usr/bin/java -cp /var/lib/neo4j/plugins:/etc/neo4j:/usr/share/neo4j/lib/*:/var/lib/neo4j/plugins/* -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:+UnlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields -XX:+DisableExplicitGC -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.rejectClientInitiatedRenegotiation=true -Dunsupported.dbms.udc.source=rpm -Dfile.encoding=UTF-8 com.neo4j.server.enterprise.CommercialEntryPoint --home-dir=/var/lib/neo4j --config-dir=/etc/neo4j