2013-11-12 2 views
0

На Centos 6.4, я пытаюсь запустить несколько экземпляров кота на основе этого урока: http://www.openlogic.com/wazi/bid/188102/запуск несколько экземпляров кота на Centos

для того, чтобы проиллюстрировать эту проблему, я скопировать конфигурацию по умолчанию для нового экземпляра /srv/tomcat/solr сохраняя те же значения портов по умолчанию (и я останавливаюсь /etc/init.d/tomcat6 по умолчанию службы, чтобы избежать конфликтов порта) следующим образом:

sudo su - 

yum install tomcat6 

name=solr 

mkdir -p /srv/tomcat/${name}/logs 
mkdir /srv/tomcat/${name}/webapps 
mkdir /srv/tomcat/${name}/work 
mkdir /srv/tomcat/${name}/temp 
cp -R /usr/share/tomcat6/conf/ /srv/tomcat/${name} 
#rm /srv/tomcat/${name}/conf/tomcat6.conf # this line is not in the tutorial, but adding it produces the same result 
chown -R tomcat. /srv/tomcat/ 

ln -s /etc/init.d/tomcat6 /etc/init.d/${name} 

cat >/etc/sysconfig/${name} <<EOF 
CATALINA_BASE="/srv/tomcat/${name}" 
CATALINA_PID="/var/run/${name}.pid" 
CONNECTOR_PORT="8080" 
TOMCAT_LOG="/srv/tomcat/${name}/logs/catalina.out" 
EOF 

# I keep the default port values at: /srv/tomcat/solr/conf/server.xml 

/etc/init.d/tomcat6 stop # to avoid port conflicts 
/etc/init.d/${name} start # i start my new instance 

[[email protected] ~]# /etc/init.d/${name} start 
Starting solr:            [ OK ] 

[[email protected] ~]# /etc/init.d/${name} status 
PID file exists, but process is not running    [FAILED] 

[[email protected] ~]# cat /srv/tomcat/solr/logs/catalina.out 
/usr/sbin/tomcat6: line 30: /srv/tomcat/solr/logs/catalina.out: Permission denied 

, что может быть проблема?

+0

попробуйте прокомментировать эту строку chown -R tomcat./srv/tomcat/и затем запустить – Satya

ответ

0

Сейчас я просматриваю один и тот же учебник; во-первых, есть ли дополнительная информация в вашем каталинии., которая сообщит нам, какой файл/файлы получил сообщение «Отказано в разрешении»?

Основываясь на том, что я вижу, похоже, что tomcat попытался запустить, создал файл PID и неожиданно умер из-за проблемы с разрешениями - никогда не очищал PID-файл.

Я могу только предположить, что вы просмотрели комментарии в конце статьи - третий комментарий, например, объясняет, как один из читателей должен был создавать/chown новые папки в/var/log как/вар/журнал/$ {я}.

Пара идей:

  1. Я вижу, что вы сделали «Чаун -R TOMCAT/SRV//» кот ... Я мог бы добавить группу в там же, что-то вроде «Чаун -R tomcat: tomcat/srv/tomcat/"(я не знаю, что эта точка делает после пользователя tomcat - это опечатка?)
  2. Кроме того, эта строка из учебника кажется неправильной" cp -R/usr/share/tomcat6/conf// srv/tomcat/$ {i} ". Учебник должен создать каталог для/usr/share/$ {i}/conf ... который должен содержать файлы, такие как server.xml, tomcat-users.xml, web.xml, context.xml.
  3. Вы всегда можете добавить некоторые записи в сценарий запуска или увеличить уровень ведения журнала в tomcat, чтобы попытаться получить больше информации о проблеме - это одна из главных преимуществ работы с открытым исходным кодом. Используй силу, Люк!
  4. Я немного смущен тем, что происходит между вашей командой «ln -s», вашим «cat»/etc/sysconfig/... и вашим «/etc/init.d/${name» ". Я не вижу, как будет запускаться файл sysconfig (см. № 3 выше). Я бы подумал, что вместо «ln -s» вам нужно будет сделать копию, затем поместите свои переменные bash внутри этой копии и, наконец, вызовите эту копию.
  5. Если у вас есть какие-либо войны под/srv/tomcat/$ {name}/webapps /, они также должны принадлежать tomcat: tomcat. Плохие вещи могут произойти, если вы запускаете свой экземпляр tomcat в качестве пользователя root, ловите себя, а затем запускаете в качестве tomcat. Эти файлы под webapps должны быть перезапущены. В этой же строке я видел примеры в сети, где люди бросают войну в webapps /, принадлежащие root, а затем передают ее пользователю tomcat во время работы tomcat. Я считаю, что это плохая практика. Сначала выложите его пользователю tomcat, возможно, в каталог temp, а затем поместите его в каталог webapps /.
Смежные вопросы