国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

systemctl 命令設(shè)置開機自啟動失敗

這篇具有很好參考價值的文章主要介紹了systemctl 命令設(shè)置開機自啟動失敗。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

哈嘍大家好,我是咸魚。今天跟大家分享一個關(guān)于 Linux 服務(wù)(service)相關(guān)的案例
?

案例現(xiàn)象

我在 3 月 31日的時候發(fā)表了一篇《shell 腳本之一鍵部署安裝 Nginx》,介紹了如何通過 shell 腳本一鍵安裝 Nginx

?

我腳本中執(zhí)行了 Nginx 開機自啟動的命令,當(dāng)我使用 systemctl status nginx 命令復(fù)核的時候,我發(fā)現(xiàn) Nginx 服務(wù)設(shè)置開機自啟動并沒有生效

systemctl 命令設(shè)置開機自啟動失敗

?

使用下面的命令設(shè)置一下

systemctl 命令設(shè)置開機自啟動失敗

?

通常來說,設(shè)置開機自啟動其實就是將 nginx.service 這個文件創(chuàng)建一個軟連接然后掛在/etc/systemd/system/multi-user.target.wants/ 目錄下面

?

舉個例子,我要將 atd.service 設(shè)置開機自啟動

systemctl 命令設(shè)置開機自啟動失敗

?

systemctl 命令設(shè)置開機自啟動失敗

?

可以看到設(shè)置了開機自啟動的服務(wù)都在這個目錄下面有軟連接,但是沒有 Nginx 服務(wù)

?

我們使用下面的命令來看下 nginx 服務(wù)有沒有設(shè)置開機自啟動

systemctl 命令設(shè)置開機自啟動失敗

?

奇怪,怎么 systemctl enable nginx.service 沒有生效?

?

手動創(chuàng)建一下軟鏈接試試

systemctl 命令設(shè)置開機自啟動失敗

?

?發(fā)現(xiàn)設(shè)置開機自啟動成功

systemctl 命令設(shè)置開機自啟動失敗

?

問題:使用 systemctl 命令不能設(shè)置 nginx 服務(wù)開機自啟動,需要手動去掛載軟連接

?

定位問題

在排查問題之前,我先給大家簡單介紹一下?daemon 與 服務(wù)(service)

?

daemon 與 服務(wù)(service)

?

我們知道,在 Linux 中,服務(wù)(service)其實就是一個個程序,它們能夠?qū)崿F(xiàn)某一功能、提供某一服務(wù)

?

但通常我們在查閱類 Unix 系統(tǒng)相關(guān)的技術(shù)文檔時,又經(jīng)常會看到“請啟動某某 daemon 來提供某某功能”

?

那么這個 daemon 到底是啥意思?它跟 service 有什么區(qū)別?

?

簡單點來說,系統(tǒng)為了實現(xiàn)某些功能必須要提供一些服務(wù)(比如想要實現(xiàn)負(fù)載均衡的功能需要提供 Nginx 服務(wù))

?

但是提供的 service 需要程序的運作(例如你需要啟動 Nginx 進程),所以我們認(rèn)為使系統(tǒng)能夠提供某些 service 的程序稱作 daemon(例如使系統(tǒng)能夠提供負(fù)載均衡服務(wù)的程序 nginx 為 daemon)

?

看到這里小伙伴們可能都暈了,說實話我第一次看到的時候也是這樣的

其實你不必去區(qū)分什么是 daemon 和 service,因為提供某一 service 是需要一個 daemon 在運作,沒有這個運作的 daemon 就不會有這個 service

?

無論是命令行模式(runlevel 3),還是圖像界面模式(runlevel 5),我們在開機進入 Linux 主機之后,系統(tǒng)已經(jīng)開始提供很多 service 了(例如 sshd )

?

那么這些 service 是如何啟動的,系統(tǒng)又是怎么管理它們的呢?

?

在早期 Linux 是使用 SystemV 來管理服務(wù)的,啟動系統(tǒng)服務(wù)的管理方式被稱為 SysV 的 init 腳本處理方式——系統(tǒng)內(nèi)核第一個程序是 init,然后 init 去喚起所有系統(tǒng)需要的服務(wù)

systemctl 命令設(shè)置開機自啟動失敗

?

SystemV 管理服務(wù)的開機自啟動有兩種方式:

  1. 通過掛軟連接的方式

/etc/rc.d/rc[0-6]/SXX 服務(wù)名字掛載到 /etc/init.d/ 下(其中 SXX 中的 S 表示啟動該服務(wù),XX 是數(shù)字,為啟動的順序)

systemctl 命令設(shè)置開機自啟動失敗

?

  1. 通過 chkconfig 命令

創(chuàng)建軟連接的方式比較麻煩,一般來說都是用命令來管理

systemctl 命令設(shè)置開機自啟動失敗

?

但是 CentOS 7 之后就放棄了使用多年的 SystemV ,改用 systemd 來管理服務(wù)

?

systemd 管理服務(wù)

?

systemd 將過去所謂的 daemon 程序稱作一個個服務(wù)單位(unit),而每個 unit 根據(jù)功能來區(qū)分成不同的類型(type):

  • 系統(tǒng)服務(wù)(service)

  • 負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)監(jiān)聽與交換的服務(wù)(socket)

  • 快照服務(wù)(sanpshot)

?

而且 systemd 將許多的 unit 集合成一個所謂的 target 項目,你執(zhí)行某個 target 其實就是執(zhí)行 target 下的多個 unit

?

可能有小伙伴覺得,這么多 unit 分成不同的 type,然后又被合集到不同的 target ,管理起來不會很麻煩嗎

?

其實也還好,因為相關(guān)的文件都存放在下面的目錄當(dāng)中了

systemctl 命令設(shè)置開機自啟動失敗

?

總結(jié),系統(tǒng)開機會不會執(zhí)行某些服務(wù)是看 /etc/systemd/system/ 目錄下有沒有該服務(wù)的啟動腳本,而服務(wù)的啟動腳本是放在 /usr/lib/systemd/system/下的

?

systemctl 命令

systemd 來管理服務(wù)的方式是通過 systemctl 命令,相較于 SysV 通過 service / chkconfig / setup / init 一堆命令,systemd 管理服務(wù)的方式簡單多了

?systemctl 命令設(shè)置開機自啟動失敗

?

?PS:關(guān)閉服務(wù)除了 systemctl 命令,也能用 kill 命令的方式,但是這兩個命令不要混用!

systemctl 命令設(shè)置開機自啟動失敗

?

?服務(wù)的狀態(tài)

systemctl 命令設(shè)置開機自啟動失敗

?

  • 服務(wù)的當(dāng)前狀態(tài):

    • active (running):表示服務(wù)正在運行

    • active (exited):表示該服務(wù)執(zhí)行一次就正常結(jié)束,目前沒有執(zhí)行

    • active (waiting):表示該服務(wù)正在運行,不要需要等待其他事件執(zhí)行之后才能繼續(xù)處理

    • inactive:表示服務(wù)目前關(guān)閉,沒有運行

  • 服務(wù)預(yù)設(shè)狀態(tài):

    • enable:開機的時候?qū)⒆詥?/span>

    • disable:開機的時候不會自啟動

    • static:這個服務(wù)不會開機自啟動,但是有可能會被其他開機自啟動的服務(wù)來喚醒(依賴性)

    • mask:無論如何都不會被啟動,因為已經(jīng)被強制注銷

?

服務(wù)的啟動文件

前面我們說過,服務(wù)的啟動腳本文件放在 ?/usr/lib/systemd/system/下的,如果需要對服務(wù)的啟動腳本文件修改,需要進入到該目錄下(官方不建議直接修改該目錄下的文件,但是會比較麻煩且繁瑣)

systemctl 命令設(shè)置開機自啟動失敗

?

?我們就拿 sshd.service 舉例,來了解下服務(wù)的啟動腳本里面的配置字段

systemctl 命令設(shè)置開機自啟動失敗

?

分析上面文件中的內(nèi)容,我們可以看到分成了三個部分(block):

  • [Unit]

    • unit(即服務(wù))本身的說明,以及與其他服務(wù)的依賴性設(shè)定(After、Wants 字段)

  • [Service]

    • 還有 [Socket], [Timer], [Mount], [Path] 等等,不同的 type 就用不同的字段

    • 我們拿的是 sshd.service,所以就是 [Service]

    • 這個部分中主要規(guī)定了服務(wù)的啟動腳本、環(huán)境文件名、重啟方式等等

  • [Install]

    • 表示這個服務(wù)安裝到哪個 target 下面去

    • 這部分與 systemctl enable 或 ?systemctl disable 命令相結(jié)合,用于 enable 或 disable 一個服務(wù)

?

下面我將分別列出三個部分的一些常見配置字段

systemctl 命令設(shè)置開機自啟動失敗

?

?systemctl 命令設(shè)置開機自啟動失敗

?systemctl 命令設(shè)置開機自啟動失敗

?

?解決問題

現(xiàn)在我們已經(jīng)大致對 Linux 的服務(wù)有了一個初步了解

?

我們回到剛開始的問題:nginx 服務(wù)無法通過 systemctl 命令設(shè)置開機自啟動,手動掛載軟連接之后自啟動狀態(tài)不是 enable ,而是 static

?

既然是跟 systemctl 相關(guān)的,我們?nèi)タ聪?nginx 的服務(wù)啟動腳本

systemctl 命令設(shè)置開機自啟動失敗

?

可以看到,這臺機器上 nginx 的服務(wù)啟動腳本只有兩個部分([Unit]、[Service]),并沒有 [Install]

?

而 ?[Install] 部分往往是跟服務(wù)的開機自啟動相關(guān)

systemctl 命令設(shè)置開機自啟動失敗

?

?

systemctl 命令設(shè)置開機自啟動失敗

?

?我們加上 [Install]

?systemctl 命令設(shè)置開機自啟動失敗

?

其中 multi-user.target 表示命令行模式(即等效于系統(tǒng)運行級別為 3 )

?

WantedBy表示該服務(wù)放在哪個 target 下,一般來講 WantedBy 對應(yīng)的 target 為指定系統(tǒng)的運行級別

?

然后重啟一下 nginx 啟動腳本文件

systemctl 命令設(shè)置開機自啟動失敗

?

?設(shè)置開機自啟動,發(fā)現(xiàn)創(chuàng)建軟連接成功了

systemctl 命令設(shè)置開機自啟動失敗

?

?看下狀態(tài)

systemctl 命令設(shè)置開機自啟動失敗

?

總結(jié):

  • 一般來講,服務(wù)無法設(shè)置開機自啟動首先考慮是不是服務(wù)啟動腳本配置有問題(/usr/lib/systemd/system/ 目錄下),這種情況常見于編譯安裝的時候需要自己編寫服務(wù)啟動文件

  • 服務(wù)能夠開機自啟動其實就是將 /usr/lib/systemd/system/ 目錄下的服務(wù)啟動腳本掛載到了 /etc/systemd/system/ 下,一般是掛載到 /etc/systemd/system/multi-user.target.wants/

    • multi-user.target.wants:表示啟動了 multi-user.target 之后(即系統(tǒng)啟動且運行級別為 3,為系統(tǒng)的默認(rèn)啟動 target)這個目錄下的文件都會跟著啟動

  • systemctl status 命令顯示的內(nèi)容里面有一個 vendor preset: disabled 字段,這個表示該服務(wù)首次安裝之后不會自啟動,需要手動啟動(systemctl enable

?


感謝閱讀,喜歡作者就動動小手[一鍵三連],這是我寫作最大的動力文章來源地址http://www.zghlxwxcb.cn/news/detail-409792.html

到了這里,關(guān)于systemctl 命令設(shè)置開機自啟動失敗的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 服務(wù)器設(shè)置tomcat開機自啟動(cmd命令行語句)

    服務(wù)器設(shè)置tomcat開機自啟動(cmd命令行語句)

    1 找到tomcat安裝目錄,進入bin/文件夾下面,在此打開windows 命令行窗口。 2 輸入 將tomcat注冊成為windows服務(wù),其中tomcatXXX為服務(wù)名。 3查看剛剛注冊的服務(wù) “我的電腦”-》右鍵管理 發(fā)現(xiàn)剛剛的服務(wù)是手動的,并不是自動的,而且無法通過界面修改啟動方式。 4 命令行修改啟動

    2024年02月13日
    瀏覽(23)
  • systemctl docker start 啟動失敗 解決辦法

    1.systemctl docker start 啟動失敗 yum 卸載重裝? ?無用 重啟虛擬機 無用 使用 systemctl status docker.service 查看結(jié)果 ● docker.service - Docker Application Container Engine ? ?Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled) ? ?Active: failed (Result: start-limit) since Sun 2022-11-13 03:01:3

    2024年02月04日
    瀏覽(38)
  • systemctl status mysqld.service或者systemctl start mysqld 啟動失敗的解決辦法

    systemctl status mysqld.service或者systemctl start mysqld 啟動失敗的解決辦法

    報錯過程: mysql需要啟動,執(zhí)行一下命令啟動mysql: 結(jié)果出現(xiàn)如下提示 在這里給大家一個提示,因為每個人的報錯原因不同,我們需要去查看mysql的日志 如果mysql日志太多,可以通過dG將mysql的日志全部刪除,之后再執(zhí)行啟動musql的命令 找到日志中出現(xiàn)error的地方,根據(jù)具體問

    2024年02月08日
    瀏覽(97)
  • 華為歐拉系統(tǒng)(EulerOS)安裝圖形化界面,和設(shè)置開機啟動為圖形化界面,還是命令行界面,兩種界面相互轉(zhuǎn)化

    華為歐拉系統(tǒng)(EulerOS)安裝圖形化界面,和設(shè)置開機啟動為圖形化界面,還是命令行界面,兩種界面相互轉(zhuǎn)化

    1.安裝圖形化界面 先測試網(wǎng)絡(luò) ping baidu.com 使用快捷鍵Ctrl+c sudo yum -y install dde sudo systemctl set-default graphical.target 完成后,重啟電腦,使用sudo reboot命令。等待系統(tǒng)啟動進入到圖形界面。 2.設(shè)置開機默認(rèn)啟動命令行界面 用systemctl set-default multi-user.target 然后重啟生效 3.圖形化界面

    2024年02月01日
    瀏覽(43)
  • linux:掌握systemctl命令控制軟件的啟動和關(guān)閉、掌握使用ln命令創(chuàng)建軟連接

    linux:掌握systemctl命令控制軟件的啟動和關(guān)閉、掌握使用ln命令創(chuàng)建軟連接

    一:systemctl命令: Linux系統(tǒng)很多軟件(內(nèi)置或第三方)均支持使用systemctl命令控制:啟動停止、開機自啟 能夠被systemctl管理的軟件一般也稱之為:服務(wù) 語法: systemctl | start |?stop | status | enable | disable 服務(wù)名 1、start 啟動? 2、stop 關(guān)閉 3、status 查看狀態(tài) 4、enable 開啟開機自啟 5、dis

    2024年02月03日
    瀏覽(18)
  • Ubuntu開機自啟動設(shè)置/docker開機自啟

    Ubuntu開機自啟動設(shè)置/docker開機自啟

    ??????? 這里有兩個程序所以編寫了兩個腳本,第一腳本(master.sh): ??????? 開啟一個新的終端,使用conda創(chuàng)建的wood2環(huán)境,到指定目錄執(zhí)行main.py程序,并把日志信息保存到指定文件masterLog.txt中。 ??????? 第二個腳本(wood.sh): ??????? 開啟一個新的終端,到指定目

    2024年02月06日
    瀏覽(23)
  • Ubuntu設(shè)置開機自啟動

    Ubuntu設(shè)置開機自啟動

    本文介紹如何在Ubuntu設(shè)置開機自啟動。 除了系統(tǒng)上配置的默認(rèn)啟動應(yīng)用程序之外,gnome-session-properties 程序使用戶能夠配置登錄時應(yīng)啟動哪些應(yīng)用程序。 選擇開機自啟動的程序路徑并保存。 本文介紹了在Ubuntu設(shè)置開機自啟動的流程。

    2024年02月13日
    瀏覽(18)
  • linux 設(shè)置開機啟動

    解決問題思路 1.首先寫一個可執(zhí)行腳本 2.將該腳本注冊成服務(wù) 3.使用system enable命令讓他開機自啟 內(nèi)容如下: 將寫好的服務(wù)配置復(fù)制到system路徑下 添加引用 測試一下可不可以 systemctl start 自己氣的服務(wù)名.service systemctl enable 自己起的服務(wù)名 我是因為改這個沒權(quán)限r(nóng)oot都不行,

    2024年02月11日
    瀏覽(22)
  • 設(shè)置docker、容器開機啟動

    簡介 :docker容器化可以使得環(huán)境相對獨立,減少污染。在遇到關(guān)機重啟時,重新啟動顯得很雞肋,特別是必須開機自啟動的程序,添加必要的參數(shù)使得每次重啟后可以開始使用容器非常有必要。 歷史攻略: centos7.6:安裝docker win10:安裝docker和測試安裝redis Ubuntu:安裝docker

    2024年02月11日
    瀏覽(18)
  • 設(shè)置 Docker 開機自啟動

    設(shè)置 Docker 開機自啟動,可以按照以下步驟操作: 1、打開終端并使用以下命令編輯 Docker 服務(wù)文件: sudo vi /lib/systemd/system/docker.service 2、在 [Service] 部分添加以下兩行: ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT Restart=always 這將確保 Docker 在啟動時自動接受轉(zhuǎn)發(fā)流量,并在失敗時

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包