我生成了一个 debian 软件包,其中包含一些库和一个可执行文件(GUI 应用程序)。我希望可执行文件在安装过程结束时启动 debian 软件包的用户会话上下文中自动启动。
我希望我的应用程序在后台永久运行(它实现应用程序指示器并提供用户通知)。我通过在 /etc/xdg/autostart/ 目录中安装 .desktop 脚本成功地在登录时自动启动它。
但是,经过很长时间的搜索,我仍然没有找到安装后自动启动我的应用程序的解决方案。我在安装后脚本中尝试了很多操作,例如运行
sudo -u $SUDO_USER <executable name>
,但由于安装后脚本在 root 上下文中运行,所有用户上下文都会丢失,并且 GUI 应用程序无法在用户活动会话上启动。
我花了一段时间才弄清楚如何让我的 Tauri 应用程序正常运行。这仅在您使用 .desktop 文件时有效,否则只需尝试运行
sudo -u $SUDO_USER gtk-launch obscura >/dev/null &2>/dev/null & disown
没有.desktop?试试
sudo -u $SUDO_USER app & disown
故障
sudo -u $SUDO_USER
:以运行更新的用户身份运行命令
gtk-launch
:启动应用程序,就像用户单击菜单中的快捷方式一样
>/dev/null &2>/dev/null &
:如果 I/O 未重定向,gtk-launch 作为后台作业将不起作用
disown
:我们希望脚本在应用程序不退出的情况下退出