前の質問 で、シャットダウンする方法を見つけましたallvagrant で起動された実行中のVMのインスタンス。現在CinnamonであるDesktop Managerからログアウトするときに、このスクリプトを呼び出したいです。
似たような類似の別の問題を指摘する人もいますが、選択した回答を理解していなかったため、問題を解決して何かを実行することができませんでした。以下のコメントは、start on stopping lightdm
。これは私が探しているもののように聞こえます。 これは、デスクトップマネージャーからログアウトするときに、すべてのVM(stop-vagrant.shと呼ばれる)を停止するスクリプトを実行する方法です(start on stopping lightdm
)?
あなたがする必要があるのは pstart job を作成することです。 VMを停止するためのスクリプトが/some/path/vagrant-stop.sh
で利用できるとしましょう。
VMの正確な性質(GUIにログインしたときにのみ実行されるか、システムの起動時に実行されるかなど)に応じて、システムジョブまたはセッションジョブを使用できます。 GUIにログインしているときにのみVMを実行する場合、セッションジョブを使用できます。簡単な例を以下に示します。
~/.config/upstart
拡張子で.conf
にファイルを作成します(お気に入りのエディターを使用します)。
vim ~/.config/upstart/stop-vms.conf
コンテンツは次のとおりです。
description "Give your task a description"
start on session-end
task
exec /some/path/vagrant-stop.sh
initctl check-config
を実行して、エラーがあるかどうかを確認します。
これで、次のようにVMを停止できます(言い回しをご容赦ください):
start stop-vms
ログアウトすると、Upstartが自動的にこれを実行します。