2015-02-05 2 views
1

다음 Neon4J DB가 실행 중인지 확인하는 cron이 있습니다. 작동 중지되면 Node.Js 응용 프로그램이 종료되고 db가 다시 시작된 다음 응용 프로그램이 다시 시작됩니다. 두 번째 줄은 백업 스크립트입니다. 명령을 실행하는 동안 Cron이 실행되지 않는 이유는 무엇입니까?

* * * * * /home/noduslabs/neo4j-community-2.0.1/bin/neo4j status || /home/noduslabs/webapps/infranodus/bin/forever stopall && /home/noduslabs/webapps/infranodus/bin/forever start $HOME/webapps/infranodus/infranodus/app.js && /home/noduslabs/neo4j-community-2.0.1/bin/neo4j start 10 14 * * * ~/webapps/infranodus/bin/backup

내가 쉘에서 코드 나 자신을 실행

, 같은

/home/noduslabs/neo4j-community-2.0.1/bin/neo4j status || /home/noduslabs/webapps/infranodus/bin/forever stopall && /home/noduslabs/webapps/infranodus/bin/forever start $HOME/webapps/infranodus/infranodus/app.js && /home/noduslabs/neo4j-community-2.0.1/bin/neo4j start

로 그것은 잘 모든 작업을 수행합니다. 내가 crontab -l을 수행 할 때 그러나 크론은 그 분마다 확인하고 아무것도 다시 시작하지 않습니다하지 않습니다

...

PS는 위를 나열하고 나는 그것이 EDITOR=nano crontab -e를 사용하여 편집 - 다만 중요한 경우. ..

왜 그런가?

감사합니다.

답변

1

문제는 Neo4J가 Java 프로그램이며 cron에서 올바르게 실행되지 않았기 때문에 동일한 환경 변수가 아닙니다.

#!/bin/bash -l /home/noduslabs/neo4j-community-2.0.1/bin/neo4j start

단순히 다시 시작하려고 시도 : 그것은 쉘 스크립트 checkdb 스크립트 내가 가진 것을

* * * * * ~/webapps/infranodus/bin/checkdb

측면에서

를 실행되도록 내가 무슨 짓을

은 크론을 변경했다 DB (이미 시작된 경우 동일한 프로세스이므로 시작되지 않습니다)

그게 해결 방법이고 첫 번째 줄은 bash 쉘을 사용하는 것이므로 매우 중요합니다. 따라서 동일한 매개 변수를 사용합니다.

관련 문제