我可以使用 Upstart 启动需要用户 X 会话的脚本吗?

我可以使用 Upstart 启动需要用户 X 会话的脚本吗?

我编写了一个脚本,它通过输出来synclient确定笔记本电脑的触摸板是否奇迹般地关闭了(Ubuntu 最近似乎很喜欢这样做),如果是的话,则将其重新打开。

脚本大致如下:

#!/bin/bash
while true ; do
    if [ `synclient | grep -e"TouchpadOff[\s]*1" | wc -l` -ge 1 ] ; then
        synclient TouchpadOff=0
    fi
    sleep(3)
done

(我现在手边没有笔记本电脑,但你明白我的意思!如果不正确的话,我稍后会在笔记本电脑旁更新)

因此我尝试将其作为 upstart 脚本运行,这样我的触摸板就可以自行修复而无需任何交互。但是当我的脚本启动时,synclient 似乎找不到当前用户的 X 会话。

我尝试使用类似su -c myscript.sh ledneb脚本节中的代码来运行它,但无济于事。

我应该朝 /etc/X11/xinit/xinitrc 而不是 upstart 的方向寻找吗?

是否有适当的方法让该脚本在当前(甚至是硬编码)用户的 x 会话上下文中运行?

答案1

你可以做你所要求的事情......

...但我不确定这是正确的方法。如果您还没有这样做,请考虑在 Ubuntu 中报告此问题,以便可以修复它,因为您描述的行为听起来像是一个错误。

相关内容