xfce会话结束时如何执行脚本

Den*_* R. 6 linux xfce

xfce会话停止时是否可以运行脚本/命令?

djb*_*djb 5

http://mail.xfce.org/pipermail/xfce/2012-November/031694.html -在那里,埃里克哈比希特建议设立一个包装脚本/usr/local/bin/xfce4-session(或其他目录先于其中的目录xfce4-session安装,/usr/bin您的PATH)。这样,您不必更改/usr/bin/X11/xfce4-session,因此可以独立更新。

#!/bin/bash
# Add your own pre-session logic here
/usr/bin/xfce4-session
# Add your own logout logic here
Run Code Online (Sandbox Code Playgroud)

然后

$ chmod +x /usr/local/bin/xfce4-session
Run Code Online (Sandbox Code Playgroud)

它并不完美(取决于PATH订单)但可能更可口。

注意:我将我的评论提升为答案。

  • 剩下的一个问题:看起来该解决方案只有在明确完成“注销”后才有效。如果我直接关闭系统,则不会执行 .logout 脚本。(发行版:Debian Jessie) (2认同)

pal*_*int 2

使用 shell 脚本更改/usr/bin/xfce4-session可执行文件,该脚本运行原始脚本xfce4-session和注销脚本(如果xfce4-session完成)。

# mv /usr/bin/xfce4-session /usr/bin/xfce4-session.orig
Run Code Online (Sandbox Code Playgroud)

/usr/bin/xfce4-session文件:

#!/bin/bash
/usr/bin/xfce4-session.orig
echo "my logout script" > /tmp/testfile
Run Code Online (Sandbox Code Playgroud)

不要忘记设置执行权限:

# chmod a+x /usr/bin/xfce4-session
Run Code Online (Sandbox Code Playgroud)

(在 Debian Squeeze 上测试。)

  • 请参阅http://mail.xfce.org/pipermail/xfce/2012-November/031694.html - 也就是说,您可以将包装器脚本放在 /usr/local/bin 或 xfce4-session 所在目录之前的另一个目录中安装后,不要更改 /usr/bin/X11/xfce4-session。它并不完美(取决于 PATH 顺序),但可能更容易接受 (4认同)