通过桌面入口自动启动仅适用于 GUI 应用程序

通过桌面入口自动启动仅适用于 GUI 应用程序

我正在尝试使用一个Desktop Entry文件启动 django,并在信息亭模式下打开一个 chromium 浏览器来显示一个本地服务的网站,该网站显示了我所在地区的一些天气报告等等...我在启动浏览器之前让它休眠几秒钟,因为我想等待 django 启动等等...

在职的:

[Desktop Entry]
Type=Application
Name=ChromeBrowser for weatherdata
Exec=/bin/bash -c "sleep 20 && chromium-browser --kiosk "127.0.0.1:8001" --start-fullscreen"

不工作(启动django):

[Desktop Entry]
Type=Application
Name=Django Server
Exec=/bin/bash -c "python3 /home/me/app manage.py runserver 8001"
Terminal=true

我只是从来没有看到打开的终端,或者用 htop 找不到正在运行的 python 实例。我错过了什么?运行时,我也找不到桌面进入过程的错误journalctl。我尝试使用这个答案. 阅读规格沒有帶來啟示。

我有两个问题:

  1. 我在这里遗漏了什么?
  2. 在哪里可以找到发生事情的日志?
  3. (使这个工作完成的唯一方法是编写一个执行我的 django 命令的 sh 脚本吗?)

答案1

应用程序路径中的空格是问题,或者引号错误。

意思是,要么删除空格,要么使用正确的引号。

Exec=/bin/bash -c 'python3 "/home/me/app manage.py" runserver 8001'

您可以.desktop从命令行测试文件,gtk-launch如果有错误,它会显示出来。

gtk-launch "/path/to/mycommand.desktop"

使用 systemd 用户通常是更通用的方法,特别是当程序独立于图形环境时(例如在 ssh 登录时启动),请参阅man systemd.unit。但当然它有点复杂。借助 Google,您会找到许多相关手册。

相关内容