2017-11-09 12 views
0

私のpingが最初に成功するならば、ipsとpoweroffのリストを循環させるつもりです。しかし、システムはハングアップしているようです。このスクリプトを実行した後、私はもはやシステムにpingできず、電源がオフになりません。私が端末を通してssh 192.168.1.ip "sudo poweroff"を実行すると、この問題は発生しません。何かアドバイス?単一ssh 192.168.1.40 "sudo poweroff"システムが適切にパワーオフされている実行後Bash Poweroffスクリプトがシステムをハングアップする

for ((ip=40, cnt=0; ip<=max; ip++, cnt++)) 
do 
    if ping -c 1 192.168.1.$ip &> /dev/null 
    then 
     printf "\n${array[$cnt]}: Ping Successful" 
     ssh 192.168.1.$ip "sudo poweroff" 
     printf "\n${array[$cnt]}: Power Down Executed\n" 
     sleep 1 
    else 
     printf "\n${array[$cnt]}: Ping Failed\n"  
    fi 
done 

。私のスクリプトを実行すると、私はシステムにpingすることができませんが、私は視覚的にファンとledがまだ表示されていることを見ることができます。 sshはこのスクリプトの実行後に接続を許可していないので、KVMを使用して詳細を確認する必要があります。まだ一見したところ、ssh 192.168.1.40 "sudo poweroff"の実行方法と私のスクリプトを通して実行することが実際に違いを生むのは理解できません。とにかく私は明日より多くの情報を追加しようとします。 。

+2

最初に単一の 'ssh 192.168.1.42 sudo poweroff'を実行し、何が起こっているのかをもっと説明し、リモートマシンの電源が切られていないことをどのように知っていますか? 'dmesg'の出力をリモートマシンと他の関連するログに与えます。リモートマシンの実際の状態をもっと詳しく説明してください。 **あなたの質問を編集して**さらに改善してください。 –

+0

はお礼 – Connor

+1

または 'ssh 192.168.1。$ ip"(スリープ5; sudo poweroff)& "'リモートホストのバックグラウンドにプロセスを置いて5秒間スリープしてから電源を切ってスクリプトが完了し、リモートホストが終了する前に終了する... –

答えて

1

SSH 192.168.1 $のIP「(スリープ5; sudoの電源オフ)&」スクリプトが完了するまでの時間を与えるために電源を切る前に、5秒間、リモートホストと睡眠にバックグラウンドでプロセスを配置しますリモートホストが終了する前に終了してください... - David C. Rankin

これは私の問題を解決しました。

+0

あなた自身の答えを受け入れることができるようになりました。 –

関連する問題