Linux 系統服務開機自啟動指導手冊

一、引言

在 Linux 系統中,設置服務開機自啟動是常見的系統配置任務。本文檔詳細介紹了多種實現服務開機自啟動的方法,包括 systemctl 方式、通用腳本方式、crontab 方案等,并提供了生產環境下的方案建議和開機啟動腳本示例。

二、systemctl 方式

2.1 適用范圍
適用于已安裝為系統服務且服務文件(.service)存儲在/usr/lib/systemd/system的組件。
2.2 設置開機啟動
使用systemctl enable xxx指令設置開機啟動,其中xxx為服務名。例如,設置mysqld服務開機啟動:

systemctl enable mysqld

會在/etc/systemd/system/xxx/(系統服務)或/etc/systemd/user/(用戶服務)下創建.service 文件的軟連接。如mysqld服務,會創建從/etc/systemd/system/multi - user.target.wants/mysqld.service到/usr/lib/systemd/system/mysqld.service的軟連接。
2.3 取消開機啟動
執行systemctl disable xxx,或者手動移除/etc/systemd/system/xxx/或/etc/systemd/user/下相應軟連接或服務文件。
2.4 查看開機啟動狀態
使用systemctl status xxx查看服務當前狀態及是否開機啟動。例如,查看mysql服務:

systemctl status mysqld

2.5 分類查看服務
查看系統中已經enable的服務:

systemctl list-unit-files --state=enabled
systemctl list-enabled

查看系統中已經disable的服務:

systemctl list-unit-files --state=disabled
systemctl list-enabled

三、chkconfig 方式

3.1 適用條件
服務腳本文件必須在/etc/init.d/目錄下,且結合/etc/rc.d/rc0.d~rc6.d目錄實現,同時服務腳本文件必須包含必要的頭部腳本代碼。
3.2 設置開機啟動
使用

chkconfig --add mysql
chkconfig --level 3 mysql on/off

其中mysqld為服務名,–level 3表示在運行級別 3 下設置開機啟動或關閉。
3.3 查看開機啟動狀態
使用

chkconfig --list mysql

四、通用腳本方式

4.1 適用范圍
不管組件是否已安裝為系統服務均適用。
4.2 方法一:追加啟動命令到默認啟動腳本
將啟動命令追加到/etc/rc.local(或/etc/rc.d/rc.local,前者是后者的軟連接)。需要先賦予/etc/rc.d/rc.local可執行權限。

chmod +x /etc/rc.d/rc.local
echo "/usr/local/your_service_start_command" >> /etc/rc.d/rc.local

4.3 方法二:編寫啟動腳本并放置在特定目錄
編寫啟動腳本.sh,放置到/etc/profile.d目錄下。腳本需設置可執行權限,如:

chmod +x /etc/profile.d/your_service_start.sh

4.4 方法三:編寫啟動腳本并追加執行指令到默認啟動腳本
編寫啟動腳本.sh,設置可執行權限后,將腳本的執行指令追加到/etc/rc.local或/etc/rc.d/rc.local。例如:

chmod +x /usr/local/your_service_start.sh
echo "/usr/local/your_service_start.sh" >> /etc/rc.d/rc.local

五、crontab 方案
5.1 適用范圍
適用于需要靈活調度任務的場景,可實現開機啟動以及按特定時間間隔執行任務。
5.2 設置開機啟動
使用@reboot關鍵字實現開機啟動功能。例如,開機時執行/usr/local/daemonProcess/somescript.sh腳本:

crontab -e
#### 在打開的文件中添加以下內容
@reboot /usr/local/daemonProcess/somescript.sh

5.3 特殊關鍵字及執行時間
@reboot:重啟時執行一次,實測比/etc/rc.d/rc.local更早執行(提前 1 - 2s),比默認 1 分鐘定時提前 30s 左右。
@yearly:一年執行一次,1 月 1 號 0 點 0 分執行,等同于@annually。
@monthly:一月執行一次,每月 1 號 0 點 0 分執行。
@weekly:一周執行一次,即"0 0 * * 0"。
@daily:一天執行一次,即"0 0 * * *"。
@hourly:一小時執行一次,即"0 * * * "。
5.4 特別注意
是否同時使用@reboot和定時任務,需根據實際業務需要決定。若守護定時設置為 1 分鐘(即
* * * *),建議不再設置@reboot,以免開機啟動后的 1 分鐘內重復執行;若守護定時間隔較大,建議同時使用@reboot,確保應用服務及時啟動。

六、生產環境開機啟動方案建議

在生產環境中,建議只采用一種開機啟動方案,確保所有組件、服務統一,便于服務較多時的快速運維。比如,有些服務默認安裝時不會自動生成系統服務,所以 systemctl 方式不能適用生產環境中所有組件、服務。如果此時按照各組件、服務分別制定開機啟動方案,則在后續如果服務啟動異常或服務發版時,就需要明確識別各服務的開機啟動方案,然后做相應的操作,提高運維成本,增加出錯概率。

七、開機啟動腳本示例

7.1 追加啟動命令到 /etc/rc.local 或 /etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.local
# 開機啟動腳本/usr/local/AutoStartOnBoot.sh
chmod +x /usr/local/AutoStartOnBoot.sh
# 本腳本需要依賴/etc/rc.d/rc.local
# rc.local在加載環境變量之前執行,所以此處需要人工加載
source /etc/profile

八、總結

通過本文檔介紹的多種開機自啟動方案,用戶可以根據不同的服務類型和業務需求,選擇最合適的方法來實現 Linux 系統服務的開機自啟動。在生產環境中,統一的開機自啟動方案有助于降低運維成本,提高系統的穩定性和可維護性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66805.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66805.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66805.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java如何向http/https接口發出請求

用Java發送web請求所用到的包都在java.net下,在具體使用時可以用如下代碼,你可以把它封裝成一個工具類 import javax.net.ssl.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Outpu…

禁止 iOS 系統瀏覽器雙指放大頁面

網上找到禁止ios縮放的方法基本都試過了,但是還是有bug,如標題所示,下面我將總結一下禁止ios縮放,雙擊縮放的方法。 方法一 在 iOS 10之前&#xff0c;iOS 和 Android 都可以通過一行 meta 標簽來禁止頁面縮放&#xff1a; <meta content"widthdevice-width, initia…

讀西瓜書的數學準備

1&#xff0c;高等數學&#xff1a;會求偏導數就行 2&#xff0c;線性代數&#xff1a;會矩陣運算就行 參考&#xff1a;線性代數--矩陣基本計算&#xff08;加減乘法&#xff09;_矩陣運算-CSDN博客 3&#xff0c;概率論與數理統計&#xff1a;知道啥是隨機變量就行

PLC通信

PLC&#xff08;可編程邏輯控制器&#xff09;通信是指 PLC 與其他設備或系統之間進行數據傳輸和信息交換的過程 一、PLC通信方式 1 &#xff09;串行通信 數據按位順序依次傳輸&#xff0c;只需要一對傳輸線&#xff0c;成本低&#xff0c;傳輸距離長&#xff0c;但速度相對…

C/C++、網絡協議、網絡安全類文章匯總

&#x1f6f8; 文章簡介 本文章主要對本博客的所有文章進行了匯總&#xff0c;方便查找。內容涉及C/C編程&#xff0c;CMake、Makefile、Shell腳本&#xff0c;GUI編程框架MFC和QT&#xff0c;Git版本控制工具&#xff0c;網絡協議基礎知識&#xff0c;網絡安全領域相關知識&a…

java 中多線程、 隊列使用實例,處理大數據業務

場景&#xff1a; 從redis 訂閱數據 調用線程來異步處理數據 直接上代碼 定義線程管理類 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org…

【自動駕駛】4 智駕生態概述

目錄 1 智駕生態概述 ▲ 關鍵組成部分 ▲ 概述 2 關鍵技術 ▲ 傳感器 ▲ 感知 ▲ 數據閉環 3 未來市場 1 智駕生態概述 智能駕駛生態&#xff0c;簡稱智駕生態&#xff0c;是指圍繞智能駕駛技術的開發、應用、服務和支持所形成的產業體系和合作網絡。 涵蓋了從硬件設…

2025.1.20——一、[RCTF2015]EasySQL1 二次注入|報錯注入|代碼審計

題目來源&#xff1a;buuctf [RCTF2015]EasySQL1 目錄 一、打開靶機&#xff0c;整理信息 二、解題思路 step 1&#xff1a;初步思路為二次注入&#xff0c;在頁面進行操作 step 2&#xff1a;嘗試二次注入 step 3&#xff1a;已知雙引號類型的字符型注入&#xff0c;構造…

”彩色的驗證碼,使用pytesseract識別出來的驗證碼內容一直是空“的解決辦法

問題&#xff1a;彩色的驗證碼&#xff0c;使用pytesseract識別出來的驗證碼內容一直是空字符串 原因&#xff1a;pytesseract只識別黑色部分的內容 解決辦法&#xff1a;先把彩色圖片精確轉換成黑白圖片。再將黑白圖片進行反相&#xff0c;將驗證碼部分的內容變成黑色&#…

Unity3D項目開發中的資源加密詳解

前言 在Unity3D游戲開發中&#xff0c;保護游戲資源不被非法獲取和篡改是至關重要的一環。資源加密作為一種有效的技術手段&#xff0c;可以幫助開發者維護游戲的知識產權和安全性。本文將詳細介紹Unity3D項目中如何進行資源加密&#xff0c;并提供相應的技術詳解和代碼實現。…

RabbitMQ 在實際應用時要注意的問題

1. 冪等性保障 1.1 冪等性介紹 冪等性是數學和計算機科學中某些運算的性質,它們可以被多次應?,?不會改變初始應?的結果. 應?程序的冪等性介紹 在應?程序中,冪等性就是指對?個系統進?重復調?(相同參數),不論請求多少次,這些請求對系統的影響都是相同的效果. ?如數據庫…

AIGC視頻生成明星——Emu Video模型

大家好&#xff0c;這里是好評筆記&#xff0c;公主號&#xff1a;Goodnote&#xff0c;專欄文章私信限時Free。本文詳細介紹Meta的視頻生成模型Emu Video&#xff0c;作為Meta發布的第二款視頻生成模型&#xff0c;在視頻生成領域發揮關鍵作用。 &#x1f33a;優質專欄回顧&am…

Debian 上安裝PHP

1、安裝軟件源拓展工具 apt -y install software-properties-common apt-transport-https lsb-release ca-certificates 2、添加 Ond?ej Sur 的 PHP PPA 源&#xff0c;需要按一次回車&#xff1a; add-apt-repository ppa:ondrej/php 3、更新軟件源緩存&#xff1a; apt-g…

office 2019 關閉word窗口后卡死未響應

最近關閉word文件總是出現卡死未響應的狀態&#xff0c;必須從任務管理器才能殺掉word 進程&#xff0c;然后重新打開word再保存&#xff0c;很是麻煩。&#xff08;#其他特征&#xff0c;在word中打字會特別變慢&#xff0c;敲擊鍵盤半秒才出現字符。&#xff09; office官網…

SecureUtil.aes數據加密工具類

數據加密、解密工具類 包含map和vo的數據轉換 import cn.hutool.core.bean.BeanUtil; import cn.hutool.crypto.SecureUtil;import java.util.HashMap; import java.util.Map;/*** 數據解析**/ public class ParamUtils {/*** 數據解密** param params 參數* param secretKe…

機器學習:支持向量機

支持向量機&#xff08;Support Vector Machine&#xff09;是一種二類分類模型&#xff0c;其基本模型定義為特征空間上的間隔最大的廣義線性分類器&#xff0c;其學習策略便是間隔最大化&#xff0c;最終可轉化為一個凸二次規劃問題的求解。 假設兩類數據可以被 H x : w T x…

SQL-leetcode—1148. 文章瀏覽 I

1148. 文章瀏覽 I Views 表&#xff1a; ---------------------- | Column Name | Type | ---------------------- | article_id | int | | author_id | int | | viewer_id | int | | view_date | date | ---------------------- 此表可能會存在重復行。&#xff08;換句話說…

k8s資源預留

k8s資源預留 https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/reserve-compute-resources/ vim /var/lib/kubelet/config.yamlenforceNodeAllocatable: - pods kubeReserved: # 配置 kube 資源預留cpu: 500mmemory: 1Giephemeral-storage: 1Gi systemReserved: #…

[STM32 HAL庫]串口空閑中斷+DMA接收不定長數據

一、空閑中斷 STM32的串口具有空閑中斷&#xff0c;什么叫做空閑呢&#xff1f;如何觸發空閑中斷呢&#xff1f; 空閑&#xff1a;串口發送的兩個字符之間間隔非常短&#xff0c;所以在兩個字符之間不叫空閑。空閑的定義是總線上在一個字節的時間內沒有再接收到數據。觸發條件…

Unity Line Renderer Component入門

Overview Line Renderer 組件是 Unity 中用于繪制連續線段的工具。它通過在三維空間中的兩個或兩個以上的點的數組&#xff0c;并在每個點之間繪制一條直線。可以繪制從簡單的直線到復雜的螺旋線等各種圖形。 1. 連續性和獨立線條 連續性&#xff1a;Line Renderer 繪制的線條…