Сценарий Init.d получает код возврата 1 при назывании себя, как я могу быть произведен?

Мой вопрос, как я могу изменить сценарий так, чтобы он сказал мне, что идет не так, как надо?

Сценарий - это: я пытаюсь заставить Nexus Sonatype запускаться как услуга в Ubuntu 10.04, и она просто не будет работать.

(Я не ищу справку о том, как выполнить Nexus, но о том, как получить некоторый полезный вывод из сценария),

Это работает при вызове его с

sudo /etc/init.d/nexus start

но сбои при использовании

sudo service nexus start

Я выполнил команду обновления-rc.d на нем и сделал все согласно инструкциям.

Init.d-сценарий связи имеет точку, где он называет себя, когда он обнаруживает, что должен работать как другой пользователь ('связь'):

su -m $RUN_AS_USER -c "\"$REALPATH\" $2"

который расширяется до

su -m nexus -c '"/opt/nexus-2.0.2/bin/jsw/linux-x86-64/nexus" start'

когда добавление-x отлаживает флаг к сценарию. Эта команда результаты в ответ кодирует 1. Это никогда не выполняется - я установил флаг отладки-x на сценарии, поместили команды эха с перенаправлением в файл в начале сценария для трассировки, и т.д.

Я не могу получить вывод, говоря мне, почему команда не выполнится. Я попытался добавить перенаправление в файл после вышеупомянутой строки сценария, в кавычках, снаружи, любой способ, которым я мог вообразить. Вся информация, которую я могу получить, путем вставки строки

echo $?

после su строки, который выводы '1'.

Существует ли путь I, видят то, что происходит, когда su управляют выполнениями?

2
задан 31 March 2012 в 13:14

2 ответа

Возможно, пользователь неправильно настроен как системный пользователь. (Не используйте для этого команду adduser.) Попробуйте удалить пользовательский нексус и заново добавить его.

sudo groupadd nexus
sudo useradd -r -g nexus nexus

Не забудьте указать домашний каталог двоичных файлов Nexus и каталог sonatype-work, а также каталог, в который скрипт помещает PID-файл новому пользователю.

0
ответ дан 31 March 2012 в 13:14

У меня была эта проблема, когда я заблокировал пользователя Nexus для использования /bin/false в качестве оболочки. Поскольку эта часть скрипта выполняет команду оболочки, переданную su в качестве аргумента, сценарий просто завершился.

0
ответ дан 31 March 2012 в 13:14

Другие вопросы по тегам:

Похожие вопросы: