centos開機啟動腳本
① centos7下的etc/rc.d/rc.local是什麼
根據我查閱的資料,/etc/rc.d/rc.local是CentOS 7系統上的開機啟動腳本,它會在系統啟動時執行。當系統運行完所有服務和daemon時困虛頃,會調用rc.local文件中的命令,執行指定的腳本。rc.local文件通常汪陸用於執行一些不依賴於系統譽備服務的腳本,比如啟動某些定製的服務或者配置系統參數。
② CentOS開機自動啟動腳本
比如我這里寫啟動uwsgi的腳本
注意前三行的規范
chkonfig後面是啟動級別和優先順序,description後面是服務描述。如上面腳本意思是:
服務必須在運行級2,3,4,5下被啟動或關閉,啟動的優洞跡帶先級是90,停止的優先順序是10。
優先順序范圍是0-100,數字越大,優納蘆州鬧先級越低。
③ centos7中設置服務開機自啟的兩種方法
在日常使用 linux 系統過程中,安裝服務後系統不會自動啟動服務的。就算手動啟動了服務,只是當前生效,一旦伺服器重啟後,系統不會自動啟動這些服務。如果每次重啟伺服器都要自己手動啟動這些服務,一台還可以接受,如果是一個集群等等,那麼就會有問題了。所以,我們接下來就來設置一下開機啟動服務。
1、 利用systemctl命令添加啟動項
以 centos 7中的 Docker 服務為例
注意:centos7自啟項已不再使用chkconfig查看,而是systemctl
左—>右依次是:服務名稱、狀態。enabled:開機啟動 disabled:彎冊開機不啟動
只查看啟動項
1.2、設置docker服務開機啟動
從服務列表中查看
發現如下已經enable
1.3、測試服務是否自啟,重啟OS
1.4、查看服務狀態
1.5、補充
移除開機啟動服務
systemctl disable docker
2、 修改配置文件[/etc/rc.d/rc.local],添加開機自啟腳本
關於/etc/rc.d/rc.local文件:
Centos中的運行模式2、3、5都把/etc/rc.d/rc.local做為初始化腳本中的最後一個,所以用戶可以在這個文件中添加一些需要在其他初始化工作之後,登錄之前執行的命令。
2.1以 Tomcat 為例:
注意:這里也可以自己寫一個腳本[同理],為了方便直接使用tomcat自帶的
獲取startup.sh路徑
/root/General/虛顫 Apache -tomcat-8.5.31/bin
2.2、修改配置文件[/etc/rc.d/rc.local]
2.3、給rc.local x[執行]的許可權
注意:在centos7中,/etc/rc.d/rc.local的許可權被降低了
2.4、使文件生效
將剛剛修改的文件載入到 內存
2.5、查看tomcat進程
2.6、重啟
init 6
添加開機自啟差鬧敗:
④ Centos 7關於rc.local腳本命令開機不執行及指定用戶啟動的解決方法
1.開機不啟動
在實際核前生產場景中,我們喜歡在安裝了一些軟體服務後,將軟銷備件設置為開機自啟動,設置為開機自啟動有兩種方法:
1) 設置為chkconfig,可以編寫腳本,查看設置開機自啟動的命令 –add表示添加程序自啟動, --list表示查看。
以後的程序如果需要使用chkconfig開機自啟動,改斗清那麼需要在啟動程序中加入三行:
# chkconfig:2345 20 80
#description: Saves and restores system entropy pool for \
# higher quality random numbergeneration.
第一行中的20,80是啟動級別,不能與其他程序一樣,因此,需自定義設置。
2) 配置在/etc/rc.local文件中。直接將軟體服務的啟動命令寫在rc.local文件
注意:編輯完rc.local文件後,一定要給rc.local文件執行許可權,否則開機時不會執行rc.local文件中腳本命令
chmod+x /etc/rc.d/rc.local
注意此處,是/etc/rc.d/rc.local,而不是/etc/rc.local,如果給/etc/rc.local執行許可權是無效的,因為/etc/rc.local是軟鏈接,真正的文件是/etc/rc.d/rc.local
2.關於在rc.local文件中指定用戶執行腳本命令
使用su命令即可,命令格式:
su - username -c 「your-cammand」 ,如:
[jiakeke@mongodb ~]$ cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemdservices or udev rules
# to run scripts ring boot instead of using thisfile.
#
# In constrast to previous versions e to parallelexecution ring boot
# this script will NOT be run after all otherservices.
#
# Please note that you must run 'chmod +x/etc/rc.d/rc.local' to ensure
# that this script will be executed ring boot.
touch /var/lock/subsys/local
/bin/systemctl start iptables.service
#startup mongodb
/bin/su - xiaoyao -c "/mnt/mongodb/bin/mongod --config/mnt/mongodb/bin/mongodb.conf"
注意:指定用戶執行的腳本(程序)目錄,該用戶必須有管理該腳本(程序)目錄(文件)的許可權。
最好將該腳本(程序)目錄的所有權給該用戶:
chown -R xiaoyao.xiaoyao /mnt/mongodb
⑤ CentOS7設置Redis開機啟動
記下坑的流水賬
安裝都完成了,redis我安裝在單獨的redis用戶里;
所以安裝目錄就是/home/redis/redis-6.0.8/
配置文件的方式來做開機啟動;
/home/redis/redis-6.0.8/utils/redis_init_script 使用redis自己的啟動腳本,將該腳本cp到/etc/init.d/中,順便改名redisd,d結尾的表示自啟動服務(大概);
腳本裡面部分內容需要做修改:
EXEC= 是伺服器程序位置+程序名稱,位置改成自己的:
/home/redis/redis-6.0.8/src/redis-server
CLIEXEC= 是客頌飢戶端的,同樣有必要的話就修改/home/redis/redis-6.0.8/src/redis-cli
CONF=配置文件位置,的安裝目錄里redis.conf到這里指定的位置,順便改名字成敗櫻絕默認埠號,或者設置自己想要的目錄也行:/etc/redis/6379.conf。
配置文件內容要改,比如:
是否守護進程daemonize no改成yes
屏蔽 bind 127.0.0.1
這圖
chkconfig --list 查看自啟動服務
chkconfig --add redisd 把redis加入其中
chkconfig redisd on 開
reboot 重啟
ps -ef|grep redis看看成功沒察姿有
service redisd start 直接開起服務
service redisd stop 關閉redis
有設置密碼會報錯(error) NOAUTH Authentication required
那麼網上有教:在啟動腳本里改一下加入密碼變數
那麼,就是不安全,自己練習機無所謂了
⑥ Centos7 自己寫了一個java程序的jar包,需要寫一個腳本,然後設置成開機自啟動,應該怎麼做
首先: centos 7默認 /etc/rc.local是沒有執行許可權的,所以:
第一步: chmod+x /etc/rc.local
第二步:把你要開機啟動的腳本加到這個文件最後。保存就可以了
沒錯,就這么簡單,哈哈,好運
⑦ centos系統啟動過程詳解
本文以centos5為例,詳細說明從按下電源直到屏幕出現命令行提示符的Linux整個啟動過程。當用戶按下電源,BIOS開機自檢,按BIOS中設置的啟動設備啟動,接著啟動設備上安裝的引導程序grub開始引導Linux。Linux首先進行內核的引導,接下來執行init程序,init調用了rc.sysinit和rc等程序,rc.sysinit和rc完成系統初始化和運行服務的任務後,返回init;init啟動了mingetty後,打開了終端供用戶登錄系統,用戶登錄成功後進入了Shell,這樣就完成了從開機到登錄的整個啟動過程。
整個Linux啟動過程分成以下幾個部分:
開機按下電源鍵後,計算機加電,主板上的BIOS或UEFI基本輸入輸出程序開始對計算機硬體進行檢查,主要是負責完成對CPU、主板、內存、硬碟子系統、顯示子系統、 串並行接
口、鍵盤、 CD-ROM光碟機等硬體情況的檢測。當檢測到錯誤的時候,機器有可能會中斷或者啟動不了。如果沒什麼重大錯誤,接下來就會按次序查找引導設備,第一個有引導程序的設備為本次啟動設備。
確定引導介質後,便開始從介質中裝載引導程序如grub,這是一個微小程序,我們知道MBR引導記錄大小為512位元組,其中前446個位元組就是Bootloader,主要用來引導用戶選擇要啟動的系統或不同的內核版本,把用戶選定的內核裝載到RAM中的特定空間中,解壓,展開,而後把系統控制權移交給內核。
grub是Linux中Bootloader程序,由於MBR記錄大小的限制,所以grub分為三個部分:
需要注意的是:stage1和stage1_5不屬於任何分區,這兩個階段是沒有文件系統的,都是以磁碟0101的方式直接訪問的。
stage2階段中,會進入/boot/grub/,裡面有grub.conf配置文件,根據裡面的內核配置信息去載入內核。
這時候kernel開始進行自身初始化:探測可識別的硬體設備,載入硬體驅動程序(藉助於ramdisk載入驅動,ramdisk是輔助的偽根系統,虛擬磁租虛盤),並且以只讀方式掛載根文件系統,運行用戶空間的第一個應用程序 /sbin/init。
kernel在內存中載入時,為了模擬系統環境,會生成一個ramdisk文件,來進行下一步操作,等到載入到真正的根文件系統時,就會退出ramdisk,切換到真正的根文件系統中去。
/boot/initrd-VERSION-release.img,也就是上面提到的ramdisk,存放了和內核啟動相關的最基本驅動,和啟動無關的一般都放在/lib/moles/下面。/boot/initrd-VERSION-release.img是解決根的掛載問題,掛載根之前必然已經進入/boot了。進/boot 是grub來負責的,注意/boot 和/ 的文件系統是可以不一樣的,這兩個是獨立的分區。內核是放在/boot下面的,先載入內核,然後掛載根/,掛載根的時候需要用到文件系統驅動,而文件系統的驅動放在/lib/moles/下面,就是在根下面,就矛盾了。而ramdisk就是來解決這個問題的 。
init的進程號是1,從這一點就能看出,init進程是系統所有進程的起點,Linux在完成內核引導以後,就開始運行init進程。init進程需要讀取配置文件/etc/inittab。inittab是一個不可執行的文本文件,它有若干行指令所組成。
/sbin/init:運行系統的第一個進程。這個進程會讀取相應配置文件,比如Centos 5的配置文件:/etc/inittab。init讀取其初始化文件: /etc/inittab,來確定初始運行級別(RUN LEVEL),運行系統初始化腳本以及對應運行級別的腳本目坦巧錄裡面的腳本等。
在init的配置文件/etc/inittab中有這么一行: si::sysinit:/etc/rc.d/rc.sysinit,這是調用系統初始化腳本,主要實現的功能:
(8) 根據/etc/sysctl.conf文件設置內核參數
(9) 激活lvm及software raid設備
(10) 載入額外設備的讓型鍵驅動程序
(11) 清理操作
在rc.sysinit執行後,將返回init繼續其它的動作,通常接下來會執行到/etc/rc.d/rc程序。以運行級別5為例,init將執行配置文件/etc/inittab中的以下這行: l5:5:wait:/etc/rc.d/rc 5。
這一行表示以5為參數運行/etc/rc.d/rc,/etc/rc.d/rc是一個Shell腳本,它接受5作為參數,去執行 /etc/rc.d/rc5.d/目錄下的所有的rc啟動腳本,/etc/rc.d/rc5.d/目錄中的這些啟動腳本實際上都是一些軟鏈接文件,而不是真正的rc啟動腳本,真正的rc啟動腳本實際上都是放在/etc/rc.d/init.d/目錄下。而這些rc啟動腳本有著類似的用法,它們一般能接受 start、stop、restart、status等參數。
/etc/rc.d/rc5.d/中的rc啟動腳本通常是K或S開頭的軟鏈接文件,對於以以S開頭的啟動腳本,將以start參數來運行。而如果發現存在相應的腳本也存在K打頭的鏈接,而且已經處於運行態了(以 /var/lock/subsys/下的文件作為標志),則將首先以stop為參數停止這些已經啟動了的守護進程,然後再重新運行。這樣做是為了保證是當 init改變運行級別時,所有相關的守護進程都將重啟。
rc執行完畢後,返回init。這時基本系統環境已經設置好了,各種守護進程也已經啟動了。init接下來會打開6個終端,以便用戶登錄系統。通過按Ctrl+Alt+Fn(n對應1-6)可以在這6個終端中切換。在inittab中的以下6行就是定義了6個終端:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
從上面可以看出在2、3、4、5的運行級別中都將以respawn方式運行mingetty程序,mingetty程序能打開終端、設置模式。同時它會顯示一個文本登錄界面,這個界面就是我們經常看到的登錄界面,在這個登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作為參數傳給login程序來驗證用戶的身份。
對於運行級別為5的圖形方式用戶來說,他們的登錄是通過一個圖形化的登錄界面。登錄成功後可以直接進入KDE、Gnome等窗口管理器。
至此,centos5的系統啟動過程就大致介紹完了,不足之處,請多多指正。
⑧ CentOS7 設置開機自啟動腳本
兩種實現方式:
方法一: (rc.local)
1、因為在 centos7 中 /etc/rc.d/rc.local 的許可權被降低了,所以需要賦予其可執行權
2、賦予腳本可執行許可權
假設 /usr/local/sca/start.sh 是你的腳本路徑,給予執行許可權
3、打開 /etc/rc.d/rc.local 文件,在末尾增加如下內容
方法二: (chkconfig)
1、將腳本移動到 /etc/rc.d/init.d 目錄下
2、增加腳本的可執行許可權
3、添加腳本到開機自動啟動項目中
chkconfig 啟動腳本規范 在腳本開頭加入下面內容:
注意:不添加以上內容的話添加啟動項時會提示service myservice does not support chkconfig
Linux啟動優先順序:
⑨ 求教關於Centos 7開機自動啟動腳本 問題
1. 自己新建一個腳本,如centnet-service.sh
經過後面的幾個步驟後,這個腳本在開機的時候會執行,在這個腳本裡面可以寫你開機的時候想執行的命令,如啟動tomcat,oracle等服務
2. 在腳本中輸入啟動服務的命令,如(開機啟動tomcat):
#!/bin/bashexport JDK_HOME=/home/java/jdk1.8.0_91export JAVA_HOME=/home/java/jdk1.8.0_91/home/tomcat/apache-tomcat-8.0.36/bin/startup.sh
3. 執行如下命令,將該腳本標記為可執行文件(添加可執行的許可權)
chmod +x /home/centnet/centnet-service.sh
4. 執行如下命令將/etc/rc.d/rc.local文標記為可執行文件
在centos7中,/etc/rc.d/rc.local文件的許可權被降低了,開機的時候執行在自己的腳本是不能起動一些服務的,執行下面的命令可以文件標記為可執行的文件
chmod +x /etc/rc.d/rc.local
5. 打開/etc/rc.d/rc.local文件,在最後面添加如下腳本
/home/centnet/centnet-service.sh
這樣,centnet-service.sh這個腳本在開機的時候就會被執行了,以後再這裡面寫啟動服務的命令就可以了