当我关闭计算机时,我想显示一些我离开办公室之前必须要完成的待办任务。
我有一个本地应用程序来管理这些任务,所以基本上我只想运行一个命令,然后在终止执行的应用程序后关闭。
我已经尝试过这些选项:
/etc/gdm/PostSession/Default
这仅当我选择“注销”选项而不是“关机”时才有效。
/etc/rc0.d/K01mycustomscript
X 被杀死后执行脚本。
$HOME/.bash_logout
这看上去什么也没做。
./app-to-run && sudo shutdown -h now
我不喜欢这个,原因有二:它提示输入 sudo 密码,而且我无法使用笔记本电脑关机按钮。
我正在使用 Ubuntu 10.04。
答案1
您可以在 /etc/init.d/ 中创建一个 init 脚本,然后使用 chkconfig 配置您想要的运行级别。我从来没有做过你想要的事情,但我会从这条路线开始。
答案2
/etc/rc0.d/K01mycustomscript
可能需要/etc/rc0.d/S01mycustomscript
- 确保它是可执行的(
chmod 755 /etc/rc0.d/K01mycustomscript
或chmod 755 /etc/rc0.d/S01mycustomscript
) - 尝试一些日志记录:将行添加
logger 'mycustomscript START'
到脚本的开头,并将其添加logger 'mycustomscript END'
到结尾,关闭,然后在其中查找日志消息/var/log/messages
- 请注意,惯例是在 中创建一个启动/停止脚本
/etc/init.d/
,然后从适当的 /etc/rc*.d 目录创建到该脚本的符号链接,或者使用像chkconfig
或 这样的工具update-rc.d
来维护符号链接(请参阅“Init”维基百科页面) - 看到这个类似的问题
答案3
退房/etc/rc0.d/README
- 上面说
The scripts in this directory are executed once when entering
runlevel 0.
The scripts are all symbolic links whose targets are located in
/etc/init.d/ .
Generally it is not necessary to alter the scripts in this directory.
Their purpose is to stop all services and to make the system ready
for shutdown.
您需要创建一个脚本/etc/init.d
,然后将它们符号链接起来以/etc/rc0.d/
使脚本在关机时运行。
答案4
/etc/gdm/PostSession/Default 方式有效:
你必须“修复” gdm (或在我的情况下是 mdm) upstart skript:
/etc/init/mdm.conf
第 15 行:在运行级别 [016] 停止
到:
启动 rc 运行级别 [016] 时停止