Centos中的程式開機自啟動

2021-08-09 18:49:28 字數 1961 閱讀 7244

幾天前基於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...