Сервисный скрипт вызывает другой скрипт с переменными

У меня есть простой служебный скрипт tomcat7 в /etc/init.d/ для запуска и остановки моего сервера приложений (tomcat) под пользователем tomcat. На RHEL6.

 #!/bin/bash # description: Tomcat Start Stop # processname: tomcat # chkconfig: 234 20 80 CATALINA_HOME=/usr/local/www/tomcat-7.0.54 case $1 in start) /bin/su tomcat $CATALINA_HOME/bin/startup.sh ;; stop) /bin/su tomcat $CATALINA_HOME/bin/shutdown.sh 30 ;; esac exit 0 

Что хорошо работает. Оба startup.sh и shutdown.sh вызывают скрипт под названием catalina.sh . Это готовые сценарии, которые поставляются с сервером приложений.

Я могу использовать catalina.sh прямо как: ./catalina.sh stop 30 -force

Это позволяет мне указать время ожидания 30 секунд, а затем убить -9, если процесс не закончился. Но я не могу заставить переменные работать в tomcat7 обслуживания tomcat7 . Если я изменю его на:

 stop) /bin/su tomcat $CATALINA_HOME/bin/catalina.sh stop 30 -force 

Я получаю сообщение об ошибке:

 [root@543917-web1 bin]# service tomcat7 stop /bin/su: invalid option -- 'o' 

Могу ли я передать три аргумента без изменения сценария catalina.sh?

ТИА

  • Замените что-либо между круглыми скобками, даже если они охватывают несколько строк
  • Параметры команды загрузки из файла верхнего уровня
  • Преобразование данных вертикального массива в данные горизонтальных массивов
  • Есть ли альтернатива использованию rbash для ограничения пользователя в моей системе?
  • получить первый аргумент CLI после опций в shell scipt
  • Количество пакетов, отправленных и полученных по интерфейсу
  • Присвоение вывода SQL-запроса переменной
  • Из сценария оболочки выполните другой с аргументами и получите код возврата
  • One Solution collect form web for “Сервисный скрипт вызывает другой скрипт с переменными”

    Вы можете использовать su с -c :

     /bin/su tomcat -c "$CATALINA_HOME/bin/catalina.sh stop 30 -force" 

    С su man:

     -c, --command=COMMAND pass a single COMMAND to the shell with -c 
    Interesting Posts

    Могу ли я сделать так, чтобы все новые пользователи, созданные в будущем, по умолчанию имели истекший пароль?

    Не удалось запустить pulseaudio

    скрипт для копирования каталогов с определенным приращением

    debian jessie backports wifi и bluetooth

    Как заглавное слово (т.е. первое письмо в верхнем) в KornShell

    Как сказать mutt не ждать, пока программа вложений вернется?

    Удалить определенные номера строк (переданные как переменные) из файла в linux

    как увидеть изменения, сделанные в большом скрипте perl, имеющем копию оригинала, который должен одновременно сравнивать как в разделенном gvim-редакторе

    Файл ISO только для чтения?

    Что такое debian, эквивалентное этой команде repoquery?

    Как я могу динамически переключать выходной пункт сценария или команды?

    Печатать символ, имеющий кодовое обозначение

    Сценарий Linux init, что делает 0 <& – &> достигать

    Являются ли данные дешифрованы и повторно зашифрованы сервером OpenVPN при отправке между клиентами?

    Скопировать initramfs в определенное место после сборки?

    Linux и Unix - лучшая ОС в мире.