Сценарий Bash & 'su', дающий ошибку «стандарт должен быть tty»,

Люди, у меня возникла проблема с скриптом bash, который запускает определенную команду как другой пользователь .

Фон: работая на Linux-сервере (CentOS), сценарий довольно прост, он запускает приложение hudson-ci .

declare -r HOME=/home/hudson declare -r RUNAS=hudson declare -r HOME=/home/hudson declare -r LOG=hudson.log declare -r PID=hudson.pid declare -r BINARY=hudson.war su - ${RUNAS} -c "nohup java -jar ${HOME}/${BINARY} >> ${HOME}/${LOG} 2>&1; echo $! > ${HOME}/${PID}" & 

Это сокращенная версия скрипта, при запуске сценарий выходит со стандартным значением, должен быть tty . Любые идеи о том, что я могу делать неправильно? Я пробовал Dr Google, и все советы пока не помогли.

Другие ссылки: ошибка Mandriva Linux 'su'

В файле / etc / sudoers попробуйте прокомментировать строку с надписью «Defaults requiretty». Для этого есть последствия для безопасности, поэтому вы можете вместо этого добавить следующую строку:

 Defaults:[username] !requiretty 

Обязательно используйте команду visudo для редактирования этого файла, а не обычный текстовый редактор.

Interesting Posts
Давайте будем гением компьютера.