关闭前执行脚本


Answers:


7

您可以将命令添加到/etc/gdm/PostSession/Defaultexit 0行之前的文件中。


如果我转到“注销”选项,它会正常执行,但是,如果我按“关机”,几乎会出现瞬时的ubuntu紫色注销屏幕并执行脚本(在出现5个小球的ubuntu徽标的屏幕中)。(经过20次睡眠测试)。
juanefren

“确定要关闭吗”对话框位于以下位置:/ usr / lib / indicator-session / gtk-logout-helper,而指示符会话程序包的一部分是用C / C ++编写的,因此很难编辑。您可能会在一些gnome-guru邮件列表中
遇到更多的麻烦

6

您可以通过在/etc/rc0.d(用于关闭)和/etc/rc6.d(用于重新启动)中创建脚本来实现。为此,请运行:

gksu gedit /etc/rc0.d/K01mycustomscript

在文本编辑器中编辑关闭脚本,然后运行:

sudo chmod +x /etc/rc0.d/K01mycustomscript

如果还希望它在重新启动时运行,请运行以下命令:

sudo cp /etc/rc0.d/K01mycustomscript /etc/rc6.d/K01mycustomscript

资料来源:这个论坛主题


根据他的描述,听起来好像他想调用图形应用程序,因此它需要访问xserver。在这种情况下,无法使用初始化脚本。
sepp2k 2010年

1
是的...正如@ sepp2k所说,脚本正在xserver外部运行:(
juanefren

4

听起来像是superuser.com的问题。无论如何,经过一番谷歌搜索后,我发现了如何在注销时运行脚本?表示将脚本添加到$ HOME / .bash_logout。

如果不起作用,请添加

$HOME/.bash_logout

到/ etc / gdm / PostSession / Default,以便它正确执行注销脚本。

就像关闭前一样,无论如何,用户都已注销,这应该涵盖两个方面。


1
由于他可能不希望脚本每次都运行,所以他退出了bash(即每次他关闭终端窗口),因此我认为将命令写入.bash_logout并不是一个好主意。但是,将其写入PostSession / Default对我来说似乎是个好主意。
sepp2k 2010年

已经有了此文件,但看起来似乎无法正常工作(我把sleep 20放了起来,而且它没有等到关机。)
juanefren

.bash_logout在关闭终端时不会运行,它只会在您从终端登录会话注销(即,如果您注销realTTY)时运行,而不会在您退出gnome时运行。
LassePoulsen

为什么这是超级用户的问题?如果问题是关于Ubuntu的,那么它就是主题。
NN

2

如果您这样做./app-to-run && sudo shutdown -h now,则应运行应用后,计算机应关闭。


1
这将是非常粗暴的关闭。您宁愿改为调用桌面关闭脚本。
txwikinger 2010年

sudo可能会要求用户输入密码,以防应用程序运行时间过长……因此它将永远不会关闭。
2012年

1

答案几乎与汤米·布鲁恩(Tommy Brunn)相同,但是不必担心被询问root密码:

sudo sh -c "./app-to-run; shutdown -h now"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.