我正在尝试使用一个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
。我尝试使用这个答案. 阅读规格沒有帶來啟示。
我有两个问题:
- 我在这里遗漏了什么?
- 在哪里可以找到发生事情的日志?
- (使这个工作完成的唯一方法是编写一个执行我的 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,您会找到许多相关手册。