Мой вопрос, как я могу изменить сценарий так, чтобы он сказал мне, что идет не так, как надо?
Сценарий - это: я пытаюсь заставить 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 управляют выполнениями?
Возможно, пользователь неправильно настроен как системный пользователь. (Не используйте для этого команду adduser.) Попробуйте удалить пользовательский нексус и заново добавить его.
sudo groupadd nexus
sudo useradd -r -g nexus nexus
Не забудьте указать домашний каталог двоичных файлов Nexus и каталог sonatype-work, а также каталог, в который скрипт помещает PID-файл новому пользователю.
У меня была эта проблема, когда я заблокировал пользователя Nexus для использования /bin/false
в качестве оболочки. Поскольку эта часть скрипта выполняет команду оболочки, переданную su
в качестве аргумента, сценарий просто завершился.