2016-04-11 101 views
0

如何配置virtualbox以通過vagrant睡眠或暫停一段時間後停止計算機?流浪/ virtualbox睡眠超時

會更好地通過Vagrantfile。如果不可能,也許某種bash命令提供睡眠超時?我正在使用Ubuntu客戶機。

回答

1

就我所知,有兩種方法可以解決這個問題。這也是一個奇怪的要求,所以我有興趣知道爲什麼你想這樣做。

  1. 您可以添加一個條款腳本您Vagrantfile從當你啓動它一定的時間後,將關閉機器。

    #shutdown after 1 hour (3600) 
    $script = <<SCRIPT 
    sleep 3600 
    shutdown -h now 
    SCRIPT 
    
    Vagrant.configure("2") do |config| 
        config.vm.provision "shell", inline: $script 
    end 
    
  2. 您可以安裝xscreensaver一定的空閒時間之後將其關閉。下面的代碼是從另一個類似的問題accepted answer

使用的xscreensaver,我可以手動指定 一定量的閒置時間後做什麼。要使用的xscreensaver,你需要 使用安裝:

sudo apt-get install xscreensaver 

或從軟件中心安裝它,然後用運行一次:

xscreensaver-demo 

或在儀表板和開放式「的xscreensaver」 「屏幕保護」。

這將創建一個~/.xscreensaver文件。打開它,搜索 行:

programs:                  \ 

,並添加:

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true \n\ 

只是

programs:                  \ 

線以下。

您可以指定關閉應該由 更改以timout開頭的行觸發的時間。修改爲

timeout:  2:00:00 

兩小時後關閉。

看看我的.xscreensaver文件here

無論您在腳本中指定了兩小時的閒置時間還是 ,都應該關閉機器。

注:

  • 看一看this question,看看如何在引導時添加的xscreensaver。

  • 我試過使用複雜關機,但錯誤here似乎影響我所以不可能發生。否則,圖形應用程序 將可用於此。

  • 這可以使用xautolock來實現,然而,如redanimalwar指出,出timout 1小時以上是不 可能的,而不改變它的源代碼並重新編譯。


編輯

按業務方案的意見,如果你想關閉某些類型的活動情況後,一具無頭箱,this article可能是你的衚衕。

請注意,你說你想這樣做的原因是因爲你有時忘記停止機器,它會耗盡你的電池。 空閒關機腳本的一個明顯的警告是,如果該框不閒置,它不會關閉它......如果它空閒它可能不會耗盡你的電池。所以如果是我的話,我真的會專注於嘗試記住如果電池是主要問題時不使用我的機器,請停止使用它,因爲編程不太可能爲您解決這個問題。

+1

有趣的是#2選項 - 第一個選項的缺點是它在你運行vagrant命令後掛在主機上 - 所以你實際上需要從一個終端運行vagrant,檢查這個配置是否會運行,並且ssh從另一個終端。我也想知道做這個的目的是什麼,我非常肯定還有其他的選擇來回答這裏需要的不僅僅是什麼。 –

+0

問題是,在我完成盒子的工作後,盒子一直在運行。如果我忘記停止它,最終會耗盡電池。 第一種解決方案似乎會關閉機器,無論如何。我會嘗試第二個選項並寫一個更新。 –

+0

我在無頭模式下運行,因此,沒有xserver,我運行'xscreensaver-demo'命令時出現以下錯誤'xscreensaver-demo:22:29:08:Gtk-warning:無法打開顯示:'。 –