Bash poweroff脚本挂起系统

时间:2017-11-09 05:05:00

标签: linux bash ubuntu unix ssh

如果我的ping成功,我的目的是循环浏览我的ips和poweroff列表。然而,系统似乎挂起了。运行此脚本后,我无法再对系统执行ping操作,也无法关闭系统。如果我通过终端运行ssh 192.168.1.ip "sudo 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

运行单个ssh 192.168.1.40 "sudo poweroff"后系统已正常关闭。在运行我的脚本时,我无法ping通系统但是我可以直观地看到风扇和LED仍处于打开状态。我想我应该使用KVM仔细查看,因为ssh在运行此脚本后不允许允许连接。乍一看,我不明白如何运行ssh 192.168.1.40 "sudo poweroff"并通过我的脚本运行它确实有所作为。无论如何,我明天会尝试添加更多信息。

1 个答案:

答案 0 :(得分:1)

  

ssh 192.168.1。$ ip&#34;(睡5; sudo poweroff)&amp;&#34;将进程置于远程主机的后台并在关闭电源之前休眠5秒,以便为脚本完成并退出远程主机时间提前... - David C. Rankin

这解决了我的问题。