一、systemd 自啟動
systemd 是目前大部分 Linux 發行版都使用的初始化系統,它可以控制系統進程的啟動與管理。在 systemd 啟動過程中,會按照一定的順序啟動各個服務,其中 systemd 啟動的第一個服務是初始化進程 systemd,其他服務會在 systemd 的控制下依次啟動。想要讓一個服務在開機時自動啟動,只需在啟動時改變該服務的狀態即可。
1、通過 systemctl 命令管理服務
在 systemd 中,可以使用 systemctl 命令來管理系統的各種服務,包括啟動、停止、重啟、查看狀態等,使用 systemctl 命令設置自啟動服務也很方便。下面是設置 docker 自啟動的命令:
sudo systemctl enable docker.service
2、通過服務文件管理自啟動服務
除了通過命令管理服務的自啟動,我們也可以通過編輯服務文件來管理服務的自啟動。Linux 下的服務文件一般放在 /usr/lib/systemd/system 或者 /etc/systemd/system 目錄下。以 docker.service 文件為例,在該文件中添加下面的一行配置即可設置 docker 自啟動:
[Install]
WantedBy=multi-user.target
二、SysVinit 自啟動
SysVinit 也是一種 Linux 初始化程序,一些舊的發行版仍在使用。它主要通過運行各個腳本來控制啟動過程和系統服務的啟動。在使用 SysVinit 時,通常需要編寫腳本並放到特定目錄中,這樣才能實現服務的自啟動。
1、通過 chkconfig 命令管理自啟動服務
chkconfig 命令可以幫助我們方便地管理啟動腳本,在使用該命令時,只需要指定一個服務和啟動級別即可,例如下面的命令將 httpd 服務添加到運行級別 3 中:
sudo chkconfig --level 3 httpd on
2、通過在啟動腳本中編寫注釋來實現自啟動
除了使用 chkconfig 命令管理啟動腳本之外,我們也可以直接編輯腳本文件,在文件頭部添加註釋實現自啟動的配置。在腳本頭部添加以下代碼即可:
# chkconfig: 2345 80 90
三、其他相關內容
1、在 systemd 中,有兩個目標是非常常見的,分別是 multi-user.target 和 graphical.target。multi-user.target 用於啟動無 GUI 模式下的服務,該目標是 Linux 系統的標準啟動目標。graphical.target 用於啟動帶有 GUI 模式下的服務。
2、在某些情況下,我們需要在系統啟動之後自動運行一些命令。這時,我們可以在 /etc/rc.d/rc.local 文件中添加需要在啟動時執行的命令。
總結
Linux 的開機自啟動是一個非常重要的功能,它可以幫助我們方便地管理系統服務並保證它們在系統啟動後自動運行。本文介紹了 systemd 和 SysVinit 兩種初始化系統以及它們的自啟動配置方法。此外,我們還介紹了如何在系統啟動之後自動運行某些命令。希望這篇文章能夠幫助大家更好地理解和使用 Linux 系統。
原創文章,作者:VASZR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/361135.html