我正在尝试在 CentOS 上使用 upstart 脚本启动 GUI 应用程序。我的测试脚本位于 /etc/init/ 文件夹。
start on desktop-session-start
stop on desktop-shutdown
respawn
script
export DISPLAY=:0
sleep 5
exec /.1/Projects/UpstartTest/start.sh &
end script
start.sh 脚本正在运行 GUI 应用程序的二进制文件。
重新启动我的电脑后。当我输入:
[root@mg-CentOS ~]# initctl status test
test stop/waiting
所以我的暴发户没有运行。当我打字时
initctl启动测试
手动它工作正常,没有任何问题。
如何在用户登录(桌面启动)后运行这个新贵脚本?我正在尝试为新贵找到 CentOS 的详细文档,但没有。
答案1
在森托斯7 使用gnome-session-properties
GUI 中编辑此内容:
这将.desktop
在~/.config/autostart/
.您也可以自己复制该.desktop
文件。
答案2
自动启动的应用程序/服务分散在那里......
列出所有自动启动应用领域, 搜索自动启动:
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" \
"/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
列出所有自动启动服务:
systemctl list-unit-files --type=service
# OR search for:
ls -1 /lib/systemd/system/*.service /etc/systemd/system/*.service
列出所有在里面脚本:
ls /etc/init.d/
列出所有定时任务表调度程序:
crontab -l
# to edit run: crontab -e
答案3
我大胆猜测它无法启动,因为它没有 X 会话。尽管您已告诉它使用DISPLAY:0
该显示当前由您而不是服务使用upstart
。
基本上,upstart
它不是为启动应用程序而设计的 - 它是为启动系统服务而设计的。
相反,您可以创建*.desktop
条目~/config/autostart
,我相信gnome-tweak-tool
还可以管理启动应用程序。
该*.desktop
条目将类似于:
[Desktop Entry]
Name=MyCoolScript
GenericName=A really cool script
Comment=Some description about your script
Exec=/.1/Projects/UpstartTest/start.sh
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
有关规格的更多详细信息,请访问Gnome 开发者网站。