expect 背景執行後的問題 - Linux

By Lucy
at 2009-07-31T22:38
at 2009-07-31T22:38
Table of Contents
※ 引述《coolkevin (我笑他人看不穿)》之銘言:
: 請問一下 我寫了一個定時重開某一台機器的script 檔名為restart.exp
: #!/usr/local/bin/expect -f
: spawn ssh [email protected]
: set timeout 15
: expect "[email protected]'s password:"
: exec sleep 3
: send "lkksf442d\r"
: exec sleep 1
: send "reboot\r"
: exec sleep 5
: interact
: exit
: 當我直接執行的時候 $ expect -f restart.exp
: 這個script 的功能正常
: 但是當我用crontab 或 at 或 expect -f restart.exp &
: 他出現
: $ spawn ssh [email protected]
: [email protected]'s password:
: 就停住不動了
: 我把timeout, sleep 都 去掉也是一樣的結果
: 請各位先進給點指導
: 謝謝
expect 讀stdout,寫stdin。
當你用cron或者是 & 的時候,stdout已經被導別的地方去了。
stdin也是,所以不管你interact 或者是send都吃不到stdin,stdout。
man看看expect是否可以把stdin,stdout指定回來,或許有機會。(我看了一下是不行)
試著用ssh -i key root@ip reboot,這個方法比較快。
另外,你都可以登入了,為啥不改那台的cron,讓他自己reboot?
--
: 請問一下 我寫了一個定時重開某一台機器的script 檔名為restart.exp
: #!/usr/local/bin/expect -f
: spawn ssh [email protected]
: set timeout 15
: expect "[email protected]'s password:"
: exec sleep 3
: send "lkksf442d\r"
: exec sleep 1
: send "reboot\r"
: exec sleep 5
: interact
: exit
: 當我直接執行的時候 $ expect -f restart.exp
: 這個script 的功能正常
: 但是當我用crontab 或 at 或 expect -f restart.exp &
: 他出現
: $ spawn ssh [email protected]
: [email protected]'s password:
: 就停住不動了
: 我把timeout, sleep 都 去掉也是一樣的結果
: 請各位先進給點指導
: 謝謝
expect 讀stdout,寫stdin。
當你用cron或者是 & 的時候,stdout已經被導別的地方去了。
stdin也是,所以不管你interact 或者是send都吃不到stdin,stdout。
man看看expect是否可以把stdin,stdout指定回來,或許有機會。(我看了一下是不行)
試著用ssh -i key root@ip reboot,這個方法比較快。
另外,你都可以登入了,為啥不改那台的cron,讓他自己reboot?
--
Tags:
Linux
All Comments

By Audriana
at 2009-08-03T18:06
at 2009-08-03T18:06
Related Posts
gcin的bug(詞音)

By Ethan
at 2009-07-31T22:35
at 2009-07-31T22:35
Printer

By Ida
at 2009-07-31T22:15
at 2009-07-31T22:15
expect 背景執行後的問題

By Anonymous
at 2009-07-31T19:04
at 2009-07-31T19:04
想請教ubuntu安裝pyQT的問題

By Susan
at 2009-07-31T17:46
at 2009-07-31T17:46
Gcin 嘸蝦米問題

By Jake
at 2009-07-31T13:13
at 2009-07-31T13:13