知识库

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

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

为简单起见,我们假设此操作在 Redhat Release 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
© . All rights reserved.