如何检查Neo4J是否在服务器上运行?

时间:2014-03-15 19:56:38

标签: cron neo4j pid

有没有办法检查Neo4J是否正在使用pidof命令运行?我试着做了

 pidof /path/to/neo4j/bin/neo4j

但它似乎没有效果。

我需要它来设置一个脚本,然后我将使用cron启动它以确保如果数据库崩溃我可以重新启动它。

谢谢!

5 个答案:

答案 0 :(得分:3)

bin/neo4j status是您要查找的命令。

答案 1 :(得分:3)

对于更一般的用途,检查neo4dj是否正在运行,请使用以下命令:

 service neo4j-service status

答案 2 :(得分:0)

由于java命令运行neo4j,因此无法正常工作。

如果你想自己做点什么,这是一个解决方法:

if test -z "$(ps -A | grep neo4j)"
    then
        echo "no neo4j instance running"
    else
        echo "neo4j up and running"
fi

但是,正如你可能知道的那样,noe4j发射器已经做过类似的事情了,我们可以看看它是如何在那里完成的:

detectrunning() {
  if [ $DIST_OS = "solaris" ] ; then
      ## SmartOS has a different lsof command line arguments
      newpid=$(lsof -o $NEO4J_SERVER_PORT | grep '::' | head -n1 | cut -d ' ' -f 1)
  else
      ## This could be achieved with filtering using -sTCP:LISTEN but this option is not available
      ## on lsof v4.78 which is the one bundled with some distros. So we have to do this grep below
      newpid=$(lsof -i :$NEO4J_SERVER_PORT -F T -Ts | grep -i "TST=LISTEN" -B1 | head -n1)
      newpid=${newpid:1}
  fi
}

这是neo4j分发目录中bin/neo4j脚本的摘录。

答案 3 :(得分:0)

在Ubuntu 16 04中,我可以执行以下操作:

sudo service neo4j status

答案 4 :(得分:0)

您可以使用以下方法在Windows中获取neo4j服务状态:

Powershell:

Get-Service neo4j

CMD / Powershell:

service neo4j