Startando tomcat no linux

13 respostas
J

Eu só consigo startar o tomcat como root. É assim mesmo, ou tá faltando alguma coisa? O que?

13 Respostas

eduveks

Tá tudo certo, vc só consegue mesmo startar com o Root…

Pois o Tomcat precisa iniciar um SocketServer, e só o Root tem permissão para iniciar um SocketServer!!! Isto é excencial para medidas de segurança, se qualquer usuário pudesse iniciar um SocketServer isto seria uma maravilha pra Trojans e é por isto que não existe Trojans para Linux/BSDs :smiley:

Portanto ou vc inicia sempre fazendo um su ou com um sudo, mas o ideal é colocar isto no initrc, que é executado como Root no boot do Linux dai não precisas sempre ficar iniciando o Tomcats :wink:

Uma vez Linux/Bsd nunca mais Rwindow$

J

Valeu!
Será que vc poderia me orientar como faço esse lance:

…mas o ideal é colocar isto no initrc
?

T

eduveks:
Tá tudo certo, vc só consegue mesmo startar com o Root…

Mais ou menos - se a porta for inferior a 5000, realmente esse é o caso. Se for superior a 5000, um usuário normal pode iniciar o Tomcat.

A explicação está quase certa. Conforme disse acima, se você usar a porta 8080 você pode iniciar o tomcat como um usuário normal.

E essa história dos trojans… É mais mito que realidade.

Uma forma de você ter uma aplicação web atendendo na porta 80 com segurança é usar o Apache atendendo na 80, e redirecionando as chamadas a JSPs e servlets para o seu Tomcat.

Se você olhar os outros application servers que rodam no Linux (como o WebSphere ou o Oracle IAS) vai ver que eles fazem exatamente isso: um web server em C (que é o Apache, modificado pela IBM e vendido como “IBM HTTP Server”, ou modificado pela Oracle e chamada de “Oracle Web Server”), que atende na porta 80 ou 443, e que se comunica com o web container (o análogo do Tomcat).

J

Então tem tá faltando alguma coisa, porque tô usando a porta 8080 e só consigo startar como root.

J

Olá, o tomcat vc deve colocar para iniciar junto com o servidor… ou seja… procure um arquivo inicializador de sua dist… no Slackware seria:

/etc/rc.d/rc.local

J

Olá, o tomcat vc deve colocar para iniciar junto com o servidor… ou seja… procure um arquivo inicializador de sua dist… no Slackware seria:

/etc/rc.d/rc.local

e colaca o cara la…

eduveks

Caro Thingol, onde vc vio isto??? Isto deve ser na distribuição que vc esta utilizando, que no geral isto não existe, SocketServer só com Root, em praticamente todos Linux e BSDs, só se vc esta usando alguma distribuição que permite isto… :shock: mas acho muito estranho que isto é uma medida de segurança básica…

Só para ter a certeza testei no Fedora, Debian, Ubundo e OpenBSD que são os que eu tenho aqui disponivel, e todos não me permitiram iniciar com outro usuário ou mesmo com um usuário do grupo root, só root mesmo!!!

Me diz ai em qual distro vc vio isto, q é para eu não usar :lol:

Quanto ao initrc é isto mesmo que foi dito ai, basta colocar o comando para inciar o tomcat no fim do arquivo rc.local.

Não tenho certeza como o Tomcat inicializa, se fica com o cursor trancado na consola, não colocando automaticamente em background… caso isto aconteça tera que usar o & para enviar para background. Algo mais ou menos assim no final do rc.local:

/usr/local/tomcat/start &

:wink:

J

javaman00:
Olá, o tomcat vc deve colocar para iniciar junto com o servidor… ou seja… procure um arquivo inicializador de sua dist… no Slackware seria:

/etc/rc.d/rc.local

No Kurumin6.0 qual seria esse arquivo?

J

javaman00:
Olá, o tomcat vc deve colocar para iniciar junto com o servidor… ou seja… procure um arquivo inicializador de sua dist… no Slackware seria:

/etc/rc.d/rc.local

No Kurumin6.0 qual seria esse arquivo? E como editá-lo?

eduveks

javabegin:
javaman00:
Olá, o tomcat vc deve colocar para iniciar junto com o servidor… ou seja… procure um arquivo inicializador de sua dist… no Slackware seria:

/etc/rc.d/rc.local

No Kurumin6.0 qual seria esse arquivo? E como editá-lo?


/etc/init.d/bootmisc.sh

C

Olá pessoal,

Estou com um problema parecido com o do colega aí…

Não consigo por nada fazer o tomcat iniciar automaticamente no boot do Kurumin… já tentei o rc.local, usar o update-rc, o bootmisc.sh, enfim, tudo o que está escrito aqui, mas não funciona por nada…

Alguém sabe dizer o que deve ser feito para que isso funcione???

Fiz algo parecido com o mysql e funcionou perfeitamente: bastou colocar o script “mysql.server” no diretorio /etc/init.d e usar o update-rc do Kurumin que ele criou os atalhos corretos nas pastas rcx.d e funcionou… mas com o tomcat tento usar o start.sh e o catalina.sh (o catalina.sh usa o parametro start como os demais servicos) e não funciona por nada!!!

Abraços,
Daniel Cabral

Luca

Olá

Porque não inicia o tomcat com usuário nobody?

O script que você vai por lá no diretório de inicialização tem algo assim:

#!/bin/sh
    CLASSPATH=/classpath do tomcat/aqui
    export CLASSPATH
    su - nobody -c "/tomcat/bin/tomcat.sh $@"

Veja também:

http://www.jguru.com/faq/view.jsp?EID=455567

http://www.ks.uiuc.edu/Research/biocore/localServer/install/sample/tomcat.biocore

[]s
Luca

C

Consegui resolver!!!

Lendo sobre este assunto em outros forums percebi o detalhe:

para funcionar a inicialização do Tomcat no boot do Kurumin, além de configurar os atalhos corretamente no init.d e nas pastas rc?.d, é preciso alterar o script do tomcat!!! Esse é o lance… durante o boot as variáveis de ambiente CATALINA_HOME e JAVA_HOME ainda não foram definidas e por isso que não funcionava… foi preciso então definí-las no início do arquivo catalina.sh

Valeu!!!

Abraços,
Daniel Cabral

Criado 25 de maio de 2006
Ultima resposta 20 de abr. de 2007
Respostas 13
Participantes 6