Login

在 Linux 登錄螢幕上啟動程序

  • March 19, 2022

當我啟動 Linux 設備時,我想在設備的登錄螢幕出現時執行程序(或在此之前。主要問題是在沒有使用者登錄的情況下執行應用程序。例如 Java JFrame Forms 或 python tkinter)

我可以在沒有使用者登錄的情況下打開應用程序嗎?

我嘗試使用 crontab 但沒有用。我想,解決方案可能是“init.d”,所以我嘗試了這個,但我無法在我的樹莓派上執行它。我不太明白如何將 init.d 與 java 或 python 一起使用。

實際上,我想要使用的設備是 Jetson Nano。(我正在使用樹莓派,因為我目前沒有它。)我想知道在樹莓派上不起作用的東西是否可以在 jetson nano 上工作?或者除了這些還有其他解決方案嗎?

謝謝。

是的,可以設置應用程序,使其在專用於該目的的使用者帳戶上執行,並且無需登錄即可在本地 GUI 顯示上使用。這稱為“資訊亭設置”或“資訊亭模式”。

Google搜尋“raspberry pi kiosk mode”,您會發現很多範例:它們中的大多數執行chromium-browser配置為具有受限視窗管理器功能的固定全屏模式,但您可以替換任何其他 GUI 程序。unclutter(如果您不需要隱藏滑鼠指針,也可以省略。)

通常,為單個帳戶設置 GUI 自動登錄並將其配置為在極簡視窗管理器中執行您的應用程序是最簡單的方法。

如果你想進一步減少軟體的數量,你可以研究如何startx工作並編寫一個自定義init.d腳本來使用startx或者甚至xinit一起啟動 X11 伺服器和你的應用程序,或者根本沒有視窗管理器,或者使用一個適當配置的極簡視窗管理器。這將是更難的方法,但您幾乎可以保證在此過程中了解很多關於 X11 會話設置的複雜性:-/

如果您希望在 GUI 登錄螢幕中與正常登錄對話框一起顯示某些內容,那麼您應該找到 X Display Manager 服務的 GUI 會話啟動腳本,並在準備登錄顯示時自定義它們以啟動您的應用程序對話框:例如,使用gdm3,向登錄螢幕添加內容的正確位置是/etc/gdm3/Init/Default

請注意,出於安全原因,顯示管理器可能希望在從登錄螢幕轉換到登錄會話時重置 X11 伺服器,反之亦然,因此可能無法在登錄螢幕中啟動應用程序並登錄 -在會話中“繼承”對它的訪問:作為 GUI 登錄序列的一部分,您可能必須重新啟動應用程序。

引用自:https://unix.stackexchange.com/questions/696086