Remotamente reinicie o tomcat

1

Estou tentando reinicializar minha versão 5 do tomcat em um servidor centos da minha caixa de desenvolvimento. Eu posso fazer o login como usuário normal (não como root), mas preciso reiniciar o serviço. Existe um arquivo de configuração que eu possa modificar ou um grupo em que meu usuário precise estar para poder reiniciar o serviço tomcat5?

EDIT : Eu executarei esta tarefa no Ant e o sudo não funcionará para isso, pois o Ant não oferece um terminal virtual.

EDIT : aqui está o erro quando tento reiniciar o tomcat como root via ant.

ssh [email protected] /sbin/service tomcat5 restart

restartTomcat:
 [exec] Pseudo-terminal will not be allocated because stdin is not a terminal.

Isso está sendo executado como root, que possui privilégios ssh. O comando está funcionando bem.

EDITAR

vi /etc/sudoers (EDIT: please use visudo instead)
comment out: #Default requiretty

Isso corrige o item tty. Agora funciona como o usuário normal.

Aqui está o meu alvo de formiga

<target name="restartTomcat">
  <exec executable="/usr/bin/ssh">
    <arg line="[email protected] sudo /sbin/service tomcat5 restart"/>
  </exec>
</target>
    
por Milhous 30.05.2009 / 18:17

3 respostas

2

Se você está tendo problemas com o sudo e recebe uma mensagem como esta:

sudo: sorry, you must have a tty to run sudo

Então você deve comentar:

Defaults    requiretty

Dentro de /etc/sudoers . Como o RHEL / CentOS é fornecido com essa opção ativada por padrão.

    
por 30.05.2009 / 18:51
3

Se o servidor tiver sudo instalado, você poderá adicionar a si mesmo ao arquivo sudoers (usando o comando visudo ) - você pode permitir tudo ou apenas esse comando específico. Em seguida, use sudo somecommand para executá-lo com privilégios de root.

Mas não importa o método, você precisará fazer o login como root pelo menos uma vez - ou fazer com que outra pessoa faça o login como root.

Editar: o sudo tem uma opção sem senha ( NOPASSWD em sudoers), que não requer um tty (se bem me lembro).

    
por 30.05.2009 / 18:20
1

Peça ao admin para adicionar "/etc/init.d/tomcat" à lista de comandos que você pode executar sem senha, assim pode fazer o sudo sem um pty:

yourname machinename=(ALL) NOPASSWD:/etc/init.d/tomcat

Existem muitas outras maneiras de fazer o que você pede, difícil.

    
por 30.05.2009 / 18:43