linux啟動后自動登錄並運行自定義圖形界面程序


在《Ubuntu CTRL+ALT+F1~F6 進入命令模式后不支持中文顯示的解決辦法》一文中提到linux啟動在以后運行一個獨占顯示器的圖形程序的兩種辦法。

1、不啟動xserver,使用fb或者directfb圖形模式;

2、啟動xserver不啟動桌面系統。

 

第一種方法性能並不一定高,因為支持fb的顯卡驅動可能找不到,就是用上顯卡驅動了也需要CPU大量參與。另外如果用這種方式可供選擇的圖形程序開發技術就受限了。所以這種方法通常用在嵌入式環境下。

第二種方法只要顯卡驅動了,CPU就能得到解脫。另外可以使用各種開發技術,甚至java、C#。

 

下面就介紹一下第二種方法。

 

首先需要安裝有xserver,還需要配置linux啟動后進入文本環境,而不是圖形環境。這個就不詳細介紹了。

 

設置自動登錄

(內容來自http://blog.chinaunix.net/uid-94449-id-2002624.html,寫的很簡潔明了,直接借用。)

1.寫腳本autologin

代碼:
#!/bin/bash
/bin/login -f 
#你的用戶名

移動到/usr/bin/下,並且用chmod +x autologin設置可執行權限

2.修改/etc/init/tty1.conf

修改前:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -8 38400 tty1

修改后:

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -n -l /usr/bin/autologin -8 38400 tty1

 

設置自動運行圖形界面程序

最初我的想法也是在啟動桌面系統的代碼中做手腳,修改相關的腳本,將啟動桌面系統的代碼修改為啟動自定義圖形界面程序的腳本。搜了一大圈沒有找到結果,然后開機自己摸索startx的過程,從入口摸索下去找到一堆腳本大概理清了。

startx的過程這里有一篇文章,比較詳細。http://blog.csdn.net/clozxy/article/details/5488699

繼續按這個路子搜索文章,終於找到ubuntu設置開機啟動圖形應用程序,替換默認圖形桌面一文。看了其中的做法,太野蠻,直接在中間劫持startx執行的客戶程序。這么做有個重要的缺陷——startx命令被廢了。切換到別的用戶也不能用startx啟動桌面系統了。

所以決定換思路。保留startx可用。僅僅在某個用戶的啟動腳本中加上啟動自定義圖形程序的代碼。

linux用戶的根目錄下有各種在啟動時設置環境變量,執行操作的腳本。這里在.bashrc中增加運行自定義圖形界面程序的代碼。

由於圖形界面程序需要xserver,所以使用xinit命令來啟動圖形界面程序。

這樣啟動的圖像界面程序沒有窗口邊框,因為沒有啟動窗口管理器。

 

補充一句最好不要直接修改.bashrc,.bashrc最后會有幾行代碼和注釋。提示將自定義的初始化過程放到另外一個指定名字的文件中,.bashrc會自動去執行它。

 

(linux圖形界面真不是linux的菜,啟兩個xserver之后簡直慢死了。無意搜到這么一篇姨媽貼http://tieba.baidu.com/p/804746720?pid=8612574579&see_lz=1,其中的談到的內容都沒錯。)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM