在linux启动时运行应用程序
问题描述:
我正在制作一个Linux应用程序。此应用程序将客户端的文件和文件夹与云同步。有家目录中的文件夹,其中来自云的所有文件将被同步。我希望应用程序应该是在后台启动启动后并自动在后台工作。 我该怎么办?在linux启动时运行应用程序
答
如果您基本上是单用户系统,则可以使用init
/systemd
作为指定的非特权用户启动后台进程。但是,这不是这些技术的通常用法。
在多用户图形系统中,您可能希望在用户的桌面会话启动时启动与用户相关的后台进程。这(通常)不仅是这种操作的正确时机,还允许支持多个用户。
可用于Linux的各种图形桌面都提供了稍微不同的方式来在登录时运行用户应用程序。可能找不到适用于所有台式机的方法。为了全面覆盖,您可能需要实施某些功能来检测正在使用的桌面,并使用适合该桌面的方法。
但是,许多台式机都尊重$HOME/.config/autostart/
的使用。该目录中的文件应具有.desktop扩展名,并且与应用程序启动器具有相同的格式。例如:
[Desktop Entry]
Name=MyThingie
GenericName=foo
Comment=foo
Exec=/path/to/my/executable
Terminal=false
Type=Application
Icon=foo
Categories=Network;FileTransfer;
StartupNotify=false
开始在哪个用户的背景下? –
对于安装应用程序的用户。 –
普通用户通常不能安装任何应用程序。即使普通用户可以运行图形化安装程序,它几乎总是以幕后超级用户身份执行其任务,并且不知道哪个用户启动了GUI。 –