Развертывание Tomcat: сделать включаемые скрипты исполняемыми - PullRequest
3 голосов
/ 12 февраля 2012

Я разрабатываю веб-приложение (для Tomcat) с использованием сетевых компонентов в Windows 7. Чтобы запустить веб-приложение, мне нужно один раз запустить сценарий insall.

Этот скрипт (* .bat для Windows и * .sh для Linux включен в мой war-файл (WEB_INF).

Теперь каждый раз, когда я развертываю WAR-файл и хочу запустить скрипт на linux, мне нужно вызывать

chmod +x install.sh

первый.

Есть ли способ сделать этот скрипт исполняемым по умолчанию? Я не хочу выполнять дополнительные команды после развертывания, чтобы сделать сценарий исполняемым.

Для уточнения: Я не новичок в Linux и знаю, как установить права на исполняемые файлы. Это не проблема. Моя проблема: что мне нужно сделать, чтобы этот скрипт выполнялся сразу после того, как tomcat развернул мой * .war-файл (распаковал его). Если бы я также использовал Linux для разработки, я бы попытался установить права в соответствии с моими источниками (возможно, я попробую это, когда у меня будет немного больше свободного времени). Но я использую Windows и NetBeans.

Есть ли какие-либо атрибуты, которые я могу установить для достижения своей цели, или это возможно сделать с помощью муравья?

Кстати: есть ли проблемы с безопасностью при таком подходе? Сценарий ищет исполняемый файл java и вызывает графический установщик javabased ...

Ответы [ 2 ]

2 голосов
/ 30 октября 2013

Изменение разрешений при инициализации приложения, следующее:

String [] command = {"/bin/chmod","+x",full_path_to_install.sh};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec( command );
pr.waitFor();

позволяет вашему приложению устанавливать права на выполнение перед использованием сценария. Он не исполняется сразу после того, как tomcat развернул ваш war-файл, но только до того, как ваше приложение его использует.

0 голосов
/ 12 февраля 2012

Предполагая, что вы каждый раз вызываете один и тот же файл "install.sh", вам нужно установить бит выполнения только один раз. Кроме того, исполняемый бит должен быть установлен только для пользователя (команда, которую вы предоставили, установит его для всех).

chmod u+x install.sh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...