我试图在系统进入运行级别 5 时自动启动 X 应用程序。
这样做的正确方法是什么?
我写了一个脚本并将其放在/etc/init.d/中
我已运行适当的 chkconfig 命令来设置 /etc/rcX.d 目录中的符号链接。
一切工作正常,除了当我运行时脚本无法启动 X 应用程序:
/sbin/service scriptName start
该行看起来像这样(为了争论,我已经切换到了 xclock):
'start')
xclock
我收到以下错误:
Error: Can't open display:
经过一些研究后发现 /sbin/service 从典型的 shell 中删除了大部分环境变量。通过添加显示:
'start')
DISPLAY=:0
export DISPLAY
xclock
I get:
Error: Can't open display: :0
我修改了我的脚本以包括:
'start')
DISPLAY=:0
export DISPLAY
XAUTHORITY=/root/.xauth2w90ge
export XAUTHORITY
xclock
现在它可以工作了 - 但这显然是一个黑客行为,因为 .xauth2w90ge 文件是生成的,并且在实例之间不会相同。
那么有没有正确的方法来做到这一点,还是我找错了树?我的要求是让该应用程序随计算机自动启动,并且我受到可以在 RPM 安装后脚本中运行的任何命令和权限的限制。