1. 程式人生 > 實用技巧 >Linux 開機執行shell指令碼

Linux 開機執行shell指令碼

  因為我的樹梅派每次開機時都不需要提示輸入密碼就直接進入桌面了,這樣老覺得心裡不踏實,想著既然能進系統後執行命令鎖屏,那就肯定可以開機的時候執行一個鎖屏指令碼命令啊,於是乎就自己開幹了起來,系統鎖屏命令是 /usr/bin/dm-tool lock ,那就想著在開機時直接執行這條命令就行啊,想想這麼簡單的事情,居然花費了我一上午的研究,還是太年輕,對Linux不是很懂,淚奔 ^&&^,Linux開機執行命令不同於 Win,windows開機執行的話可以在啟動資料夾下,登錄檔中,任務計劃裡都行,下面是我入坑的具體情況

編寫shell指令碼檔案:

  a. 在終端輸入 vim lock.sh 進入指令碼編輯

    

  b. lock.sh 檔案內容如下:

#/bin/sh
/usr/bin/dm-tool lock

  c. 輸入完成後儲存退出,給指令碼檔案新增執行許可權 sudo chmod 777 lock.sh

      

  d. 測試剛寫的指令碼,輸入 ./home/pi/lock.sh 後回車,發現可以鎖屏了,喜出望外,嘖嘖 ^^~!~^^

將指令碼開機執行方案:

  1)向 rc.local 檔案中寫入啟動程式碼

    a. 在命令終端輸入 vim /etc/rc.loacl

    

    b. 在開啟的檔案中找到 exit 0;在此之前的程式碼啟動前都會被執行,在 exit 0 之前新增一段程式碼 /usr/bin/dm-tool lock

    

    c. 修改完後儲存退出,直接輸入 reboot 進行重啟,但是發現重啟完成後並沒有鎖屏需要輸入密碼,而是直接進入桌面了,很尷尬!!!

  2)通過桌面啟動

    此方法是在載入了桌面後再啟動我們自定義的程式,因此需要安裝帶有桌面的版本,如果不是請跳過;在/home/pi/.config/目錄下新建一個名為 autostart 的資料夾

    a. 建立 sutostart 資料夾,輸入命令mkdir .config/autostart 我這裡提示我已經有這個檔案夾了,如果有這個檔案請忽視這步

    

    b.在 autostart 目錄下新建 lock.desktop (名稱任意,但字尾必須是.desktop)輸入命令: vim .config/autostart/lock.desktop

    

    c. lock.desktop 檔案內容如下:

[Desktop Entry]
Type=Application
Name=lock
NoDisplay=true
Exec=/home/pi/lock.sh

    

    d. 輸入完成後儲存檔案退出,輸入 reboot 進行重啟

    e. 可以發現這個方法可行,開機進入後就鎖定螢幕需要賬戶認證了

    可以發現在這麼一個小問題上花費了這麼長的時間,主要還是對Linux不是很熟悉,而且都是靠自己摸索過來的,學習的道路上雖然很苦很累,但是收穫成功的果實也算是對自己付出的一種安慰吧!成長吧,騷年,追夢。。。。。