- - PR -
制御端末がない場合のexpectについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-10-14 22:11
とある処理の一部を他のユーザーで実行したいという要件がありまして、
expectからsuしてパスワードを入力するというスクリプトを作成しました。 そのままそのスクリプトを実行すると思い通りの動作をするのですが、 nohupを使ってバックグラウンド処理にすると パスワード: は出るのですが、そこに入力されないで終了するという現象が起きております。 恐らく制御端末がないことが原因だとおもいます。 以下URLの件と同じ現象だと思われますが、参考にしてみましたが 解決しませんでした。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22867&forum=10 アドバイスなど頂けたらと思います。 宜しくお願い致します。 =====以下スクリプト===== #!/bin/bash expect -c " spawn su - ID expect \\":\\" send \\"PASSWORD\\r\\" expect \\"$\\" send \\"id\\r\\" expect \\"$\\" interact " =====以下成功時のログ===== $ ./script.sh spawn su - ID パスワード: id exit $ id IDコマンドの結果 $ exit logout $ =====以下失敗時のログ===== $ nohup ./script.sh spawn su - ID パスワード: id exit |
1