幾天前基於centos7做好的lamp環境,在虛擬機器重啟之後網頁便無法訪問,
一查原來是apache沒有預設配置上自啟動。
網路上初步查了一下,linux下的程式自啟動有兩種方法。
功能強大的chkconfig 以及 簡單粗暴的rc.local
安裝完mysql後並沒有人為做設定就已經是自啟動,上面的兩種方法也沒有發現
mysql的設定痕跡。對這一情況再次上網搜了一把,才發現原來systemctl也有自啟動的功能。
一. chkconfig
可以為指定程式設定在系統的各個執行級別下的自啟動開關。
這裡以apache為例
1. 複製apache的啟動指令碼到指定位置
2. 編輯啟動指令碼,在頭部的環境指定語句後(#!/bin/bash)加入chkconfig用啟動頭資訊
3. chkconfig配置
4. 配置結果確認
重啟系統後確認apache程式的自啟動
chkconfig程式列表的確認,
會看到該程式在系統各級別下的自啟動狀態。
***** 我在實驗中的疑問點,以後找到解決辦法後繼續更新 ****
- chkconfig程式列表的顯示並不完整
看了命令說明, chkconfig --list 命令應該會顯示所有用此方法設定自啟動的程式。
但在我的系統中該命令卻看不到剛剛設定好的httpd。
只能使用第4步中指定服務名的方式來檢視。
- 無啟動指令碼程式的自啟動設定
原本想順便把ftp程式vsftpd也用此方法設定成自啟動,但用yum安裝的vsftpd程式
並不帶有啟動指令碼。也就無法在 /etc/init.d/目錄下新增對應的指令碼檔案。
雖然根據網路上的描述,用 chkconfig --add vsftpd就可以為ftp配置自啟動,
但在我的環境中該命令的執行出錯。
二. rc.local
這種辦法就是真正意義上的簡單粗暴了。
只要把想開機執行的命令寫到檔案 rc.local 裡就可以了。也可以是執行其他指令碼的命令。
vi /etc/rc.d/rc.local
在該檔案的最後加上apache的啟動命令即可
最後為rc.local檔案賦上可執行屬性後重啟,大功告成。
三. systemctl
據說systemctl是rhel7中用來替代service與chkconfig的工具,自然基於rhel的centos同樣適用。
systemctl list-unit-files
此命令列出當前系統中所有服務的狀態, enable狀態表示該服務會在開機時啟動。
可以看到這時的 apache 服務狀態是disable。
此命令可以設定 apache 服務開機自動啟動
這方法雖然簡單,但也有缺點。即無法指定各個服務自啟動時的順序。
當服務相互之間有依賴關係,需要按順序啟動時,可能還是需要用 rc.local 的方法來實現。
CentOS 程式開機自啟動方法總結
1 把啟動程式的命令新增到 etc rc.d rc.local檔案中 centos系統下管理開機自啟動的配置檔案是 etc rc.d rc.local,所以只需編輯這個檔案,在裡面加入相應的啟動命令即可。比如我們設定自啟動lampp服務方法如下 1vi etc rc.d rc.local 按下鍵盤上...
開機自啟動程式
昨天做了個brew開機自啟動的demo,在此記下該程式的要點。brew平台可以做到開機就自啟動brew 應用,這需要在mif中做如下設定 增加乙個notification aeeclsid shell 設定notififer aeeclsid shell 設定mask nmask shell ini...
CentOS設定程式開機自啟動的方法
在centos系統下,主要有兩種方法設定自己安裝的程式開機啟動。1 把啟動程式的命令新增到 etc rc.d rc.local檔案中,比如下面的是設定開機啟動httpd。bin sh this script will be executed after all the other init scri...