![如何在会话结束时运行 shell 脚本?](https://linux22.com/image/1122609/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BC%9A%E8%AF%9D%E7%BB%93%E6%9D%9F%E6%97%B6%E8%BF%90%E8%A1%8C%20shell%20%E8%84%9A%E6%9C%AC%EF%BC%9F.png)
答案1
你需要做的是创建一个新贵工作. 假设您的停止虚拟机的脚本可在 处获得/some/path/vagrant-stop.sh
。
根据虚拟机的具体性质(它们是仅在您登录到 GUI 时运行,还是在系统启动时运行等),您可以使用系统作业或会话作业。对于虚拟机仅在您登录到 GUI 时运行的情况,您可以使用会话作业,我将在此处介绍一个简单的示例:
~/.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
看看是否有错误。
现在,你可以使用以下命令停止虚拟机(请原谅我的措辞):
start stop-vms
当您注销时,Upstart 将自动运行此操作。