自动启动应用程序和系统服务有什么区别?

自动启动应用程序和系统服务有什么区别?

我正在创建一个自动启动脚本,该脚本将在启动时启动并运行我的应用程序。我创建了一个将运行我的应用程序的 .sh 文件,但我发现了两种不同的方法可以在启动时运行该文件:

  1. 创建一个 .service 文件,它将运行我的 .sh 脚本并将其添加到 systemctl 服务。

  2. 使用“启动应用程序”应用程序并将 .desktop 文件添加到我的 /.config/autostart 文件夹,该文件夹将在启动时运行 .sh 脚本。

我已经测试了这两种方法并且它们效果很好,但我想知道这两种方法之间有什么区别以及一种方法是否比另一种方法更受青睐?

答案1

  1. 系统服务(systemctl 文件)在您登录前启动。它们可以作为任何指定用户或非人类系统用户或 root 运行。它们是无头的(无窗口)。它们不会在您注销时终止。

  2. 启动应用程序(自动启动目录)是桌面环境的一部分。它们在您登录后启动。它们以您(您的用户)的身份运行。它们通常使用您屏幕上的窗口。它们在您注销时终止。

您可以将它们用于不同的目的。

  • 如果我希望 LibreOffice 在每次登录时都打开,我会将其添加到启动应用程序中。提示:它需要使用我桌面上的窗口。当我退出时,它不会无头运行。
  • 如果我想运行 Web 服务器,它应该是一个系统服务。提示:无论我是否登录,它都应该在机器开启时运行。它应该在后台运行,不打开任何窗口。

相关内容