Node.js 命令正常时Cron没有运行,为什么?
我有下面的cron来检查我的Neo4J数据库是否正在运行,如果它关闭了,它会关闭Node.Js应用程序,然后重新启动数据库,然后再次启动应用程序。第二行是备份脚本Node.js 命令正常时Cron没有运行,为什么?,node.js,neo4j,cron,crontab,Node.js,Neo4j,Cron,Crontab,我有下面的cron来检查我的Neo4J数据库是否正在运行,如果它关闭了,它会关闭Node.Js应用程序,然后重新启动数据库,然后再次启动应用程序。第二行是备份脚本 ***/home/noduslabs/neo4j-community-2.0.1/bin/neo4j-status | | |/home/noduslabs/webapps/infranodus/bin/ever stopall&/home/noduslabs/webapps/infranodus/app.js&/home/nodus
***/home/noduslabs/neo4j-community-2.0.1/bin/neo4j-status | | |/home/noduslabs/webapps/infranodus/bin/ever stopall&/home/noduslabs/webapps/infranodus/app.js&/home/noduslabs/neo4j-community-2.0.1/bin/neo4j-start
10 14***~/webapps/infranodus/bin/backup
当我自己从shell运行代码时,例如
/home/noduslabs/neo4j-community-2.0.1/bin/neo4j status| |/home/noduslabs/webapps/infranodus/bin/forever stopall&/home/noduslabs/webapps/infranodus/infranodus/app.js&/home/noduslabs/neo4j-community-2.0.1/bin/neo4j start
它做每件事都很好
但是cron不会每分钟都进行检查,也不会重新启动任何东西
PS当我做crontab-l
时,它列出了上面的内容,我使用EDITOR=nano crontab-e
编辑它,以防万一
知道为什么吗
谢谢 问题在于Neo4J是一个Java程序,它没有正确地从cron运行–环境变量不同 我所做的是更改cron,使其运行shell脚本
***~/webapps/infranodus/bin/checkdb
在checkdb
脚本中,我有:
#/bin/bash-l
/home/NodesLabs/neo4j-community-2.0.1/bin/neo4j start
它只是尝试重新启动数据库(如果它已经启动,它将不会启动,因为它是同一个进程)
这是一个解决方法,第一行使用bash
shell是非常重要的,所以它使用相同的参数