質問: 「標準のinはttyでなければならない」というエラーを出すbash& 'su'スクリプト 皆さん、特定のコマンドを別のユーザーとして実行する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' bug
回答: / etc/sudoersファイルで、「defaultsrequiretty」という行をコメントアウトしてみてください。そうすることにはセキュリティ上の影響があるため、代わりに次の行を追加することをお勧めします。defaults:[username] !requiretty このファイルを編集するには、通常のテキストエディタではなく、必ずvisudoコマンドを使用してください。