1. 開機後以root身份自啟動一個腳本,怎麼設置
嵌入式 Linux 如何以root身份自動登錄 並開機自動執行腳本文件
下面操作步驟記錄如下:
要設置自啟動程序需要解決兩個問題:1、系統自動登錄;2、自動執行腳本,
1)系統自動登錄
(1)修改/etc/inittab
在inittab中,有如下配置
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
表示系統可以有六個控制台,可以用ALT+(F1~F6)來切換。而/sbin/agetty就是一個登陸驗證程序,執行它,會提示用戶輸入用戶名和密碼,然後啟動一個指定的shell(在passwd文件中指定的)。
所以,我們只需將其修改為不執行agettty,而是執行自己編寫的一個腳本,就可以跳過用戶名和密碼的輸入。修改如下:
1:2345:respawn:/root/logintest tty1 9600
這里我在/root/下放了一個測試腳本,這樣系統啟動時就會執行那個腳本,腳本內容:
#!/bin/sh
/bin/login -f root
腳本其實就是執行了一個root用戶的登陸而已。
2)自動執行程序
方法有兩種,一種是將要執行的代碼放到1)中的/root/logintest的後面;
另一種是將要執行的代碼放到/etc/profile文件的後面即可。
2. Ubuntu20.04開機運行自定義腳本
基於 Debian 的 Linux 系統默認支持 rc-local.service 服務,這個服務主要用來在系統啟動時運行用戶自定義的腳本命令等。
要想使用 rc-local.service 服務在系統啟動時運行用戶自定義的腳本命令,首先需要在 /etc 目錄下創建 rc.local 文件(若已創建則跳過創建)並修改可執行許可權,然後設置該服務開機自啟:
打開 /etc/rc.local 文件,往其中添加運行自定義腳本的命令即可。
【注】 /etc/rc.local 以及自定義腳本中都不能使用系統變數(比如 $HOME ,原因在於其執行自定義腳本時並沒有繼承系統變數)。
此時會顯示開機自啟執行腳本的輸出結果。
3. linux設置開機自啟動腳本的最佳方式
最簡單粗暴的方式直接在腳本 /etc/rc.d/rc.local (和 /etc/rc.local 是同一個文件,軟鏈)末尾添加自己的 腳本
然後,增加腳本執行許可權
第二種方式是在crontab中設置
也可以設置每次登錄自動執行腳本,在 /etc/profile.d/ 目錄下新建sh腳本,
/etc/profile 會遍歷 /etc/profile.d/*.sh
另外,幾個腳本的區別:
(1) /etc/profile: 此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行. 並從/etc/profile.d目錄的配置文件中搜集shell的設置。
(2) /etc/bashrc: 為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取(即每次新開一個終端,都會執行bashrc)。
(3) ~/.bash_profile: 每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次。默認情況下,設置一些環境變數,執行用戶的.bashrc文件。
(4) ~/.bashrc: 該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取。
(5) ~/.bash_logout: 當每次退出系統(退出bash shell)時,執行該文件. 另外,/etc/profile中設定的變數(全局)的可以作用於任何用戶,而~/.bashrc等中設定的變數(局部)只能繼承 /etc/profile中的變數,他們是」父子」關系。
(6) ~/.bash_profile: 是互動式、login 方式進入 bash 運行的~/.bashrc 是互動式 non-login 方式進入 bash 運行的通常二者設置大致相同,所以通常前者會調用後者。
4. Ubuntu 設置程序雙擊啟動和sh腳本開機自啟動的另一種方法
系統 : Ubuntu16.04 LTS
在ubuntu下面開發的Qt程序,進行動態發布之後有兩個問題:
在home中搜索Terminal,找到後拖到桌面上。
在Terminal圖標上郵件——Properties,然後在Command那一欄中填入以下指令:
例如:
還可以順便給它換個圖標,點擊哪個圖標就可以更換了,支持png格式圖片,可以去 阿里巴巴矢量圖庫 找一個.
然後關掉窗口,雙擊圖標就可以運行腳本了。記得提前賦予腳本可執行許可權。
之前一篇的自啟動方法有點問題,下面的方法實測沒有問題。
在home搜索: start
打開它:
點擊add,中間那一欄填上面的那個指令,另外兩欄隨便填:
保存就可以了。
重啟電腦,就會自動運行,不能運行來找我,我幫你再網路網路……嘿嘿嘿
5. Linux Ubuntu 20.04 —添加開機啟動(服務/腳本)
本文章向大家介紹Linux Ubuntu 20.04 —添加開機啟動(服務/腳本),主要包括Linux Ubuntu 20.04 —添加開機啟動(服務/腳本)使用實例、應用技巧、基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。
系統啟動時需要載入的配置文件
一、修改開機啟動文件:/etc/rc.local(或者/etc/rc.d/rc.local)
二、自己寫一個shell腳本
將寫好的腳本(.sh文件)放到目錄 /etc/profile.d/ 下,系統啟動後就會自動執行該目錄下的所有shell腳本。
三、通過chkconfig命令設置
四、自定義服務文件,添加到系統服務,通過Systemctl管理
1.寫服務文件:如nginx.service、redis.service、supervisord.service
2.文件保存在目錄下:以754的許可權。目錄路徑:/usr/lib/systemd/system。如上面的supervisord.service文件放在這個目錄下面。
3.設置開機自啟動(任意目錄下執行)。如果執行啟動命令報錯,則執行:systemctl daemon-reload
4.其他命令
5.服務文件示例:
6. 開機自啟腳本
電腦或伺服器開機都會有一些需要啟動的程序,每次都需要一個一個點擊啟動,耗時耗力,還有可能漏啟動。所以添加一個開機自啟的腳本,腳本中幫我們打開需要啟動的程序,如Snipaste、FRP客戶端等。
修改 /etc/rc.local 文件,添加啟動服務的命令
先寫好啟動腳本或者啟動命令,事先保證啟動腳本或命令能正常啟動服務,然後將腳本路徑或啟動命令添加至/etc/rc.local文件中,這個方法適合比較簡單的shell腳本。
創建腳本myservice,寫入
將腳本放到/etc/init.d或/etc/rc.d/init.d目錄下,並添加腳本為服務
輸入如下命令調用myservice服務,然後查看/tmp下的test.txt文件發現已經寫入了日期。
將myservice服務設置為開機自啟
查看服務是否開機啟動
重啟伺服器,就會執行 systemctl start myservice 命令和 rc.local 中的命令。
編輯腳本
根據實際情況修改Service中的User和ExecStart的屬性,然後將將本放到 /usr/lib/systemd/system/node_exporter.service 路徑下。
設為開機自啟動
systemctl enable node_exporter.service
會將文件路由到 /etc/systemd/system/multi-user.target.wants/ 目錄下
可以通過如下命令查看日誌信息
journalctl -u node_exporter -n 10 -f
7. ubuntu 設置開機自啟
比如以前啟動 mysql 服務用:
現在用:
systemd 默認讀取 /etc/systemd/system 下的配置文件,該目錄下的文件會鏈接/lib/systemd/system/下的文件。
執行 ls /lib/systemd/system 你可以看到有很多啟動腳本,其中就有我們需要的 rc.local.service
打開腳本內容:
可以看出,/etc/rc.local 的啟動順序是在網路後面,但是顯然它少了 Install 段,也就沒有定義如何做到開機啟動,所以顯然這樣配置是無效的。 因此我們就需要在後面幫他加上[Install] 段:
這里需要注意一下,ubuntu-18.04 默認是沒有 /etc/rc.local 這個文件的,需要自己創建
寫入以下內容:
然後把你需要啟動腳本寫入 /etc/rc.local ,我們不妨寫一些測試的腳本放在裡面,以便驗證腳本是否生效.
做完這一步,還需要最後一步 前面我們說 systemd 默認讀取 /etc/systemd/system 下的配置文件, 所以還需要在 /etc/systemd/system 目錄下創建軟鏈接
給rc.local加上許可權
啟用服務
啟動服務並檢查狀態
接下來,重啟系統,然後看看 /usr/local/text.log 文件是否存在就知道開機腳本是否生效了。檢查test.log文件
8. windows設置開機自啟動腳本
Windows系統想要快速設置開機自動啟動某個程序,可以使用以下幾種方法設置:
第一種:設置啟動項
1.找到啟動文件夾,我的是C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,或者打開運行,輸入shell:startup,回車,也可以快速打開啟動文件夾。
2.拷貝需要開機啟動的程序的快捷方式到此文件夾即可。
3.打開任務管理器-啟動查看啟動項。
這樣就設置好了,下次計算機啟動時,程序也會自動啟動的。
第二種:使用計劃任務自啟動
1.新建文本文件DebugStart.txt,打開寫入以下內容:
tasklist|find /i "authSender.exe" && echo started || start "" "D:\Debug\authSender.exe"。
這條語句不能換行, authSender.exe 是程序名, "D:\Debug\authSender.exe"是此程序所在路徑,tasklist|find /i "authSender.exe"是判斷進程是否存在,程序是否已經開啟,如未開啟才會啟動程序,然後改後綴名 .txt 為 .bat,雙擊即可啟動程序。(可以在每條語句前使用 :: 來注釋一條語句),這種方法還可以批量啟動不同程序,只需要在此文件中重啟一行,按相同格式寫第二個要啟動的程序對應的語句即可。
2.進入任務計劃程序窗口,創建任務。
接著選擇觸發器選項卡,選擇新建,在第一欄開始任務處選擇登錄時(啟動時開始任務需要管理員許可權)或啟動時(啟動時開始任務需要管理員許可權),點擊確定。由於我們的 bat腳本有做判斷,所以不用擔心程序會啟動多次。
在操作選項卡選擇新建,並選擇啟動程序選項,以及在程序和腳本處選擇剛才編寫的.bat程序,點擊確定,然後再點擊確定(創建任務界面的確定)。
關閉頁面,即可做到開機自動啟動程序。
第三種:通過組策略設置腳本隨伺服器啟動
1.開始->運行->gpedit.msc->計算機配置->Windows設置->腳本(啟動/關機)。其中Win10有很多版本,其中家庭版默認是不提供組策略功能,如果需要給win10的家庭版添加組策略的功能,可以參考https://blog.csdn.net/lwpkjio/article/details/85236808。
2.添加啟動腳本,點擊確定。
這樣就可以了。
第四種:添加服務自動運行
1.開始---運行---cmd---回車,在彈出的窗體中輸入如下命令:
sc create Debug binPath= D:\Debug\authSender.exe start= auto,其中Debug為將要創建的服務名。要刪除創建的服務也很簡單,使用以下命令即可:sc delete ServiceName
2.打開控制面板---管理工具---服務(或者 開始---運行---services.msc---確認)打開服務管理器,看看你創建的服務已經在裡面了,至此,服務運行已創建完成。