2014-10-15 3 views
4

У меня есть настройка арки linux и установлена ​​neo4j через репозиторий пользователя arch (yaourt -S neo4j), и я могу запустить тоннель веб-консоли (с кажущимся нормальным выходом и полной функциональностью) однако при попытке запуска сервера (sudo neo4j start), я сталкиваюсь следующее сообщение об ошибке:Ошибка на сервере neo4j start on arch linux

/usr/share/neo4j/bin/utils: line 345: [: -lt: unary operator expected 
Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=/etc/neo4j/neo4j-server.properties -Djava.util.logging.config.file=/etc/neo4j/logging.properties -Dlog4j.configuration=file:/etc/neo4j/log4j.properties -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled 
Starting Neo4j Server...cat: /run/neo4j/neo4j-service.pid: No such file or directory 
process []... waiting for server to be ready. Failed to start within 120 seconds. 
Neo4j Server may have failed to start, please check the logs. 
rm: cannot remove ‘/run/neo4j/neo4j-service.pid’: No such file or directory 

Там нет задержки перед сообщением об ошибке не выводится, так что кажется, что-то другое, чем тайм-аут. Я совершенно новичок в neo4j (я работал с небольшим руководством пользователя с помощью веб-консоли, но не работал с конфигурацией или конфигурацией сервера), поэтому я не уверен, что еще может быть актуальным. Я попытался просмотреть скрипт utils, и появляется ошибка, когда он пытается выполнить su neo4j, но также пытается начать работу с сервером. Я также попытался изменить порт, начиная с this question, но никаких изменений. Единственный журнал, я могу найти только имеет это снова и снова (с соответствующими временными метками):

Oct 15, 2014 1:33:49 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate 
INFO: Initiating Jersey application, version 'Jersey: 1.9 09/02/2011 11:17 AM' 

Любая помощь на всех будет оценен по достоинству!

EDIT: Строка 345, что это провал на конец этого фрагмента:

if [ $UID == 0 ] ; then 
    OPEN_FILES=`su $NEO4J_USER -c "ulimit -n"` 
else 
    OPEN_FILES=`ulimit -n` 
fi  
if [ $OPEN_FILES -lt 40000 ]; then 

От делать некоторые эхо отладки, кажется, что su $NEO4J_USER терпит неудачу, вероятно, потому, что $ NEO4J_USER установлен в Neo4j, пользователя, которого нет в моей системе. Я попробовал установить это для root в одном из файлов конфигурации, но, видимо, это не работает должным образом. Arch - это постоянный опыт обучения для меня, но мне не приходилось добавлять нового пользователя, прежде чем работать с программным обеспечением.

ответ

2

Интересная линия здесь:

/usr/share/neo4j/bin/utils: line 345: [: -lt: unary operator expected 

Я предполагаю, что это вызвано неправильной оболочки по умолчанию для пользователя Neo4j. Какое значение по умолчанию установлено для пользователя системы neo4j? Попробуйте переключить это на bash. Сценарии запуска должны хорошо работать с bash.

+0

Привет, Стефан, я добавил некоторый контекст этой линии в моем вопросе. Я не думаю, что это проблема с bash, но это определенно может быть связано с неправильной настройкой пользователя neo4j (так как он не существует). Я попытался настроить пользователя по умолчанию как root, но, похоже, это не работает для меня. Я сейчас далеко от соответствующей машины, но сегодня я могу попробовать кое-что, если у вас есть предложения! –

+0

Получил шанс посмотреть на это! Похоже, пользователь создан yaourt, а оболочка была установлена ​​в/bin/false! хороший звонок, Стефан! Принимая в качестве ответа, так как теперь у меня есть сервер neo4j! Благодаря! –

+0

Не знаю много о Arch Linux. Однако на Debian/Ubuntu при установке neo4j через диспетчер пакетов (apt-get) создается пользователь neo4j. Я думаю, то же самое должно произойти и для арки. –