在注销时运行命令,在卸载加密主目录*之前*

在注销时运行命令,在卸载加密主目录*之前*

我正在运行 14.04 LTS,主目录已加密。我有一个服务 (配置文件同步守护进程) 在启动和停止时需要访问我的主目录中的文件,因此需要在加密文件挂载后启动并在卸载前停止。可以通过service psd start从启动应用程序运行来实现在正确的时间启动服务。我可以在哪里放service psd stop命令?

我曾尝试使用session-cleanup-script/etc/lightdm.conf但似乎运行得太晚了。

答案1

桌面关闭时发出的众所周知的 Upstart 事件是“ desktop-end”(并且还有对应的“ desktop-start”)。因此,类似下面的代码应该可以工作:

mkdir -p ~/.config/upstart/
cat <<EOT|tee ~/.config/upstart/psd.conf
start on desktop-start
stop on desktop-end

exec psd

EOT

注意:您需要将该exec行更改为启动守护进程的命令psd。或者,您可以创建一个没有节的作业exec,而是调用命令来启动和停止守护进程,如下所示:

post-start exec command-to-start-psd
pre-stop exec command-to-stop-psd

我从未使用过 psd,但您的问题似乎表明它是以 root 身份运行的?如果是这样,我认为您应该调查是否可以以您的用户身份运行守护进程的实例(更安全,并且会使创建 Upstart 作业更容易)。

有关著名 Upstart 事件的更多详细信息:

也可以看看:

相关内容