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

У меня есть простой служебный скрипт 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?

ТИА

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