2017-09-25 48 views
1

我正在製作一個Linux應用程序。此應用程序將客戶端的文件和文件夾與雲同步。有家目錄中的文件夾,其中來自雲的所有文件將被同步。我希望應用程序應該是在後臺啓動啓動後並自動在後臺工作。 我該怎麼辦?在linux啓動時運行應用程序

+0

開始在哪個用戶的背景下? –

+0

對於安裝應用程序的用戶。 –

+0

普通用戶通常不能安裝任何應用程序。即使普通用戶可以運行圖形化安裝程序,它幾乎總是以幕後超級用戶身份執行其任務,並且不知道哪個用戶啓動了GUI。 –

回答

2

如果您有systemd,您可以創建一個服務,如圖所示here

否則你必須使用init

0

如果您基本上是單用戶系統,則可以使用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