Назад | Перейти на главную страницу

Удаленно перезагрузить tomcat

Я пытаюсь перезагрузить свой Tomcat версии 5 на сервере centos из своего окна разработчика. Я могу войти в систему как обычный пользователь (не root), но мне нужно перезагрузить службу. Есть ли файл конфигурации, который я могу изменить, или группа, в которой должен находиться мой пользователь, чтобы иметь возможность перезапустить службу tomcat5?

РЕДАКТИРОВАТЬ: Я буду запускать эту задачу в Ant, и sudo не будет работать для этого, поскольку Ant не предоставляет вам виртуальный терминал.

РЕДАКТИРОВАТЬ: вот ошибка, когда я пытаюсь перезапустить tomcat как root через ant.

ssh root@server.com /sbin/service tomcat5 restart

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

Он работает как root, у которого есть привилегии ssh. Команда как есть работает нормально.

РЕДАКТИРОВАТЬ

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

Это исправляет элемент tty. Теперь работает как обычный пользователь.

Вот моя цель-муравей

<target name="restartTomcat">
  <exec executable="/usr/bin/ssh">
    <arg line="user@server.com sudo /sbin/service tomcat5 restart"/>
  </exec>
</target>

Если на сервере есть судо установлен, вы можете добавить себя в файл sudoers (используя visudo command) - вы можете разрешить все или только эту команду. Затем используйте sudo somecommand чтобы запустить его с правами root.

Но независимо от того, каким методом, вам нужно будет хотя бы один раз войти в систему как root - или попросить кого-нибудь войти как root.

Редактировать: sudo имеет опцию без пароля (NOPASSWD в sudoers), который не требует tty (если я правильно помню).

Если у вас возникли проблемы с использованием sudo, и вы получили такое сообщение:

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

Тогда вы должны прокомментировать:

Defaults    requiretty

Внутри /etc/sudoers. Поскольку в RHEL / CentOS эта опция включена по умолчанию.

Попросите администратора добавить "/etc/init.d/tomcat" в список команд, которые вы можете выполнять без пароля, таким образом вы жестяная банка sudo it без pty:

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

Есть много других способов сделать то, о чем вы просите, тяжело.