引言
在centos 7中,大部分服務都可以通過systemctl enable service_name
命令來實現自啟動。但是,有些特殊情況下,我們可能需要手動添加某些服務的自啟動。下面,我將向您演示如何執行此操作。
要求環境
在開始之前,您需要滿足以下要求:
-
CentOS 7操作系統 -
root權限或具有sudo訪問權限
請確保您已正確設置環境,并且擁有對應的權限。
實戰案例
方案一:
下面我將以httpd
服務為例,詳細說明如何手動為服務添加自啟動:
-
打開終端并以root身份登錄到您的CentOS 7系統。
-
使用文本編輯器(如vim)打開
/etc/rc.d/rc.local
文件。 -
在文件末尾添加以下內容:
/usr/sbin/httpd
這行代碼將啟動
httpd
服務。 -
保存并關閉文件。
-
接下來,我們還需要為
rc.local
文件設置可執行權限。在終端中執行以下命令:chmod +x /etc/rc.d/rc.local
這會賦予
rc.local
文件可執行權限。 -
最后,在終端中啟動
httpd
服務:systemctl start httpd
確保服務正確啟動。
-
然后,重啟系統:
reboot
系統重啟后,
httpd
服務將自動啟動。
方案二
-
使用root權限登錄到CentOS 7服務器。
-
進入
/etc/init.d/
目錄:
cd /etc/init.d/
-
創建一個名為 <service_name>
的啟動腳本文件:
touch <service_name>
將 <service_name>
替換為你的服務名稱,例如可以新建一個文件名字為Tomcat
;
touch tomcat
-
在打開的文件中,添加以下模板代碼:
#!/bin/bash
# chkconfig: 2345 99 01
# description: Description of your service
# Add your service start, stop, restart, etc. commands here
注意:
-
在 chkconfig
行中,2345
是運行級別,99
是啟動順序,01
是停止順序。根據你的需求進行適當修改。 -
在 description
行中,輸入你的服務描述。
-
在腳本中配置你的服務的啟動、停止、重啟等命令。例如,你可以添加以下命令來啟動你的服務:
# Start command example
source /etc/profile # 這一步很重要,一定要寫上
cd /home/tomcat
./bin/startup.sh
-
保存并退出文件,此時完整的腳本內容如下:
#!/bin/bash
# chkconfig: 2345 99 01
# description: Description of your service
# Add your service start, stop, restart, etc. commands here
# Start command example
source /etc/profile # 這一步很重要,一定要寫上
cd /home/tomcat
./bin/startup.sh
-
設置腳本的可執行權限:
chmod +x tomcat
-
添加你的服務到啟動項:
chkconfig --add tomcat
-
設置服務的運行級別,讓它在所需的運行級別下自動啟動(例如:2, 3, 4 和 5):
chkconfig --level 2345 tomcat on
-
重新啟動服務器,你的服務將自動啟動。
-
查看是否配置成功了,可以看到最后一行就是我們添加的服務
tomcat
了。
[root@localhost ~]# chkconfig --list
agentboot 0:off 1:off 2:on 3:on 4:on 5:on 6:off
denyhosts 0:off 1:off 2:on 3:on 4:on 5:on 6:off
jdog_service 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost ~]#
請注意,在使用此方法之前,確保你的服務可以通過命令行手動啟動、停止和重啟。如果你的服務無法通過命令行正常運行,請檢查服務的配置和依賴項。
文章總結
通過執行上述步驟,您已經成功地為CentOS 7系統中的服務手動添加了自啟動。雖然我們無法使用systemctl enable service_name
命令,但采用手動添加的方式同樣能夠實現自啟動的效果。