ubuntu開機啟動腳本
A. 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.服務文件示例:
B. 【tips】Ubuntu 兩種開機自啟動程序方式
個人制檔鏈作的程序可以添加到開機自啟動項中,簡便一些流程,以下列出兩種方式
方式一
卜蠢雹 第一種方式比較簡單,通過Ubuntu 自帶的Startup Applications即可添加,只要選中路徑下的可執行文件即可。
方式二
通過Shell腳本+rc.local實現
step 01 創建一個腳本文件,比如起名為run_start.sh
step 02 修改rc.local文件,在exit 0之前添加執行腳本文件的命令
這兩種方式,都會在開機時啟動相應的程序。
當然,還有很多其他的啟動三方程序型帆的方式,目前沒有一一嘗試,僅舉兩例。
C. Ubuntu 設置程序雙擊啟動和sh腳本開機自啟動的另一種方法
系統 : Ubuntu16.04 LTS
在ubuntu下面開發的敬升Qt程序,進行動態發布之後有兩個問題:
在home中搜索Terminal,找到後拖到桌面上。
在Terminal圖標上郵件——Properties,然後在Command那一欄中填入以下指令:
例如:
還可以順便給它換個孫枯圖標,點擊哪個圖標就可以更換了,支持png格式圖片,可以去 阿里巴巴矢量圖庫則稿洞 找一個.
然後關掉窗口,雙擊圖標就可以運行腳本了。記得提前賦予腳本可執行許可權。
之前一篇的自啟動方法有點問題,下面的方法實測沒有問題。
在home搜索: start
打開它:
點擊add,中間那一欄填上面的那個指令,另外兩欄隨便填:
保存就可以了。
重啟電腦,就會自動運行,不能運行來找我,我幫你再網路網路……嘿嘿嘿
D. Ubuntu-18.04不能像ubuntu14一樣通過編輯rc.local來設置開機啟動腳本
ubuntu-18.04不能像ubuntu14一樣通過編輯rc.local來設置開機啟動腳本,通過下列簡單設置後,可以使rc.local重新發揮作攜州鍵用。
1、建立rc-local.service文件
sudo vi /etc/systemd/system/rc-local.service
2、將下列內容復制進rc-local.service文件
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
3、創建文件rc.local
sudo vi /etc/rc.local
4、將下列內容復制進rc.local文件
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "看到這行字,說明添加自啟動腳本成功。辯巧跡寬" > /usr/local/test.log
exit 0
5、給rc.local加上許可權
sudo chmod +x /etc/rc.local
6、啟用服務
sudo systemctl enable rc-local
7、啟動服務並檢查狀態
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
8、重啟並檢查test.log文件
cat /usr/local/test.log
E. ubuntu下,怎麼設置開機啟動項
對於安裝Ubuntu系統和windows系統(windows xp、windows Vista、windows 7等)的電腦,一般安裝完Ubuntu系統後,開機啟動項默認為Ubuntu,小編就來分享如何將開機啟動項改為windows系統,就不用去按鍵選擇了。
本經驗說明:
小編的這個建議只適合於10.10之前版本的ubuntu系統,後面的11.04,11.10。。。14.04系統因為採用的默認桌面不同,所以本經驗不適用,若要使用,那麼請安裝GNOME桌面
方法/步驟
如圖所示現在的開機啟動項為Ubuntu系統,這里我們選擇Ubuntu系統啟動,進入Ubuntu系統,在Ubuntu系統裡面修改
依次點擊並打開「應用程序」----->「附件」----->「終端」
修改/boot/grub/grub.cfg文件的許可權,圖中所示的命令是改為任何人都可以讀寫執行,但一般不建議這樣做,這里只是為了省事方便
用gedit 編輯軟體打開grub.cfg文件
grub.cfg文件打開後如下圖所示,我們就是這樣這個文件中完成我們的設置
將 set default="0"改為set default="6",也就是我們第一步中所示的開機選項,修改完後保存退出。
7
重啟電腦,這時我們看到的開機啟動項已經是windows系統了
F. Ubuntu20.04開機運行自定義腳本
基於 Debian 的 Linux 系統默嘩答認支持 rc-local.service 服務,這個服務主要用來在系統啟動時運行用亂笑慧戶自定義的腳本命令等。
要想使用 rc-local.service 服務在系統啟動時運行用戶自定義的腳本命令,首先需要在 /etc 目錄下創建 rc.local 文件(若已創建則跳過創建)並修改可執行許可權,然後設置該服務開機自啟:
打開 /etc/rc.local 文件,往其中添加運行自定義腳本的命令即可。
【注】 /etc/rc.local 以及自定義腳本中都不能使用系統變數(比如 $HOME ,原因在於其執行自定義腳本時並沒有繼承系升雀統變數)。
此時會顯示開機自啟執行腳本的輸出結果。
G. ubuntu開機和登陸後自動運行哪些腳本程序
1.開機啟動時自動運行程序
Linux 載入後, 它將初始化硬體和設備驅動, 然後運行第一個進程init。init根據配置文件繼續引導過程,啟動其它進程。通常情況下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的腳本文件,可以使init自動啟動其它程序。例如:編輯 /etc/rc.d/rc.local 文件(該文件通常是系統最後啟動枯頃戚的腳本),在文件最末加上一行「xinit」或「startx」,可以在開機啟動後直接進入X-Window。
開機後還要自動運行很多服務,如mysql,memcache等。
2.登錄時自動運行程序
用戶登錄時,bash首先自動執行系統管理員建立的全局登錄script :/ect/profile。然後bash在用戶起始目錄下按順序查找三個特殊沒陵文件中的一個:/.bash_profile、/.bash_login、 /.profile,但只執行最先找到的一個。 因此,只需根據實際需要在上述文件中加入命令就可以實現用戶登錄時自動運行某些程序(類似於DOS下的Autoexec.bat)。
注意不是自動運行.bashrc腳本,而是.profile腳本。
可以看看源碼.profile:
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
,.. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin"乎或 ] ; then
PATH="$HOME/bin:$PATH"
fi
可以看出,我們平時使用的.bashrc文件,僅僅是被.profile腳本載入的。
所以很多同學默認是zsh會導致純粹按照某些文章指示編寫.bashrc腳本的環境變數不起作用,比如使用rvm的。
3.退出登錄時自動運行程序
退出登錄時,bash自動執行個人的退出登錄腳本/.bash_logout。例如,在/.bash_logout中加入命令「tar -cvzf c.source.tgz *.c」,則在每次退出登錄時自動執行 「tar」 命令備份 *.c 文件。
4.定期自動運行程序
Linux有一個稱為crond的守護程序,主要功能是周期性地檢查 /var/spool/cron目錄下的一組命令文件的內容,並在設定的時間執行這些文件中的命令。用戶可以通過crontab 命令來建立、修改、刪除這些命令文件。
例如,建立文件crondFile,內容為「00 9 23 Jan * HappyBirthday」,運行「crontab cronFile」命令後,每當元月23日上午9:00系統自動執行「HappyBirthday」的程序(「*」表示不管當天是星期幾)。
因為.bashrc或者說.profile文件是在登錄時才執行的,如果不登陸能執行么,或者說如果要運行服務怎麼辦,此時並沒有某個用戶登陸,也就麽有相應的環境變數了。
比如啟動rails的服務的www用戶。
使用sudo命令的參數-i
查看manue:
-i [command]
The -i ( simulate initial login ) option runs the shell specified by the password database entry of the target user as a login shell. This means that login-specific resource files such as .profile or .login will be read by the shell. If a command isspecified, it is passed to the shell for execution via the shell's -c option. If no command is specified, an interactive shell is executed. sudo attempts to change to that user's home directory before running the shell. The security policy shall initialize the environment to a minimal set of variables, similar to what is present when a user logs in. The Command Environment section in the sudoers(5) manual documents how the -i option affects the environment in which a command is run when the sudoers policy is in use.
H. 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文件
I. Ubuntu Desktop下自動啟動終端並運行腳本
1.進入桌面後按 Alt + F2 組合鍵,輸入 gnome-session-properties 並回車
2.點擊 添加 在command欄里輸入我們要添加的程序
gnome-terminal -x bash -c "/home/alex/test.sh"
然後點擊 保存 --> 關閉
3.重啟測試
如果想要執行時有root許可權
1. /etc/sudoers 添加許可權外
如普通用戶鏈帆名為 alex 則將下列內容寫入上文件
alex ALL=(ALL:ALL)NOPASSWD:ALL
2.設置 ASK_PASS 使用 sudo -A script.sh
①同目錄下建立密碼讀取文件 .pw ,輸入以下內容並添加可執行許可權
②在需要要執行的腳本中添加 export SUDO_ASKPASS=.pw
③在需要的指令前添加 sudo -A
via:
ubuntu開機自動打開終端並以root權含豎限執行程序
sudo 不用輸入密碼
PS:
Ubuntu下自談喚大動啟動終端並運行腳本或命令
Ubunut下幾種設置腳本開機啟動的方法