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

【Linux】進(jìn)程信號之信號的處理

這篇具有很好參考價(jià)值的文章主要介紹了【Linux】進(jìn)程信號之信號的處理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、信號的處理時(shí)機(jī)

在前面我們講過信號產(chǎn)生和保存以后,我們知道進(jìn)程對于產(chǎn)生的信號不是立即去處理的,而是在"合適"的時(shí)候去處理信號,這是因?yàn)樾盘柕漠a(chǎn)生的異步的,當(dāng)前進(jìn)程可能正在做更重要的事情!。

那么信號可以被立即處理嗎?答案的可以的,但是要滿足這個(gè)條件:

Linux中如果一個(gè)信號之前被阻塞過,當(dāng)他解除阻塞時(shí),對應(yīng)的信號會被立即遞達(dá)!

那么對于進(jìn)程來說什么是"合適"的時(shí)候呢?
答案是:當(dāng)進(jìn)程從內(nèi)核態(tài)切換回用戶態(tài)的時(shí)候,進(jìn)程會在操作系統(tǒng)的指導(dǎo)下,進(jìn)行信號的檢測與處理!

二、內(nèi)核態(tài)與用戶態(tài)

簡單來說內(nèi)核態(tài)與用戶態(tài)的區(qū)別就是:
用戶態(tài):進(jìn)程只能執(zhí)行用戶所寫的代碼。
內(nèi)核態(tài):進(jìn)程只能執(zhí)行操作系統(tǒng)的代碼。

我們知道操作系統(tǒng)也是一款軟件,而且是一款專注于搞管理的軟件,在對進(jìn)程進(jìn)行調(diào)度、執(zhí)行系統(tǒng)調(diào)用、異常、中斷、陷阱等,都需要借助操作系統(tǒng),執(zhí)行操作系統(tǒng)的代碼,此時(shí)進(jìn)程便處于內(nèi)核態(tài)。

進(jìn)程又是如何被調(diào)度的呢?

  1. 操作系統(tǒng)的本質(zhì):
    • 操作系統(tǒng)也是軟件,并且是一個(gè)死循環(huán)式等待指令的軟件。
    • 計(jì)算機(jī)內(nèi)部存在一個(gè)硬件:時(shí)鐘模塊,每隔一段時(shí)間向操作系統(tǒng)發(fā)送時(shí)鐘中斷
  2. 進(jìn)程被調(diào)度,就意味著它的時(shí)間片到了,操作系統(tǒng)會通過時(shí)鐘中斷,檢測到是哪一個(gè)進(jìn)程的時(shí)間片到了,然后通過系統(tǒng)調(diào)用函數(shù) schedule()保存進(jìn)程的上下文數(shù)據(jù),然后選擇合適的進(jìn)程去運(yùn)行,這就完成了一次進(jìn)程調(diào)度。

1、內(nèi)核態(tài)與用戶態(tài)的轉(zhuǎn)化

  • 用戶態(tài)向內(nèi)核態(tài)的轉(zhuǎn)化的時(shí)機(jī):
  1. 當(dāng)進(jìn)程時(shí)間片到了之后,需要進(jìn)行進(jìn)程調(diào)度時(shí)。
  2. 調(diào)用系統(tǒng)調(diào)用接口,比如 open、read 時(shí)
  3. 產(chǎn)生異常、中斷、陷阱時(shí)
  • 內(nèi)核態(tài)向用戶態(tài)的轉(zhuǎn)化的時(shí)機(jī):
  1. 進(jìn)程調(diào)度完成以后。
  2. 系統(tǒng)調(diào)用調(diào)用完畢時(shí)。
  3. 異常、中斷、陷阱處理完畢時(shí)。

2、重談進(jìn)程地址空間

關(guān)于進(jìn)程地址空間的初級知識可以看這里《進(jìn)程地址空間》
在以前我們只討論了[0, 3]G的用戶空間,并沒有對[3, 4]G的內(nèi)核空間進(jìn)行討論,現(xiàn)在我們對[3, 4]G的內(nèi)核空間進(jìn)行討論。

我們在談?wù)撚脩艨臻g時(shí)提到,用戶空間的地址要經(jīng)過頁表映射到物理地址,這個(gè)用戶空間的頁表其實(shí)其真實(shí)名稱是用戶級頁表,對于內(nèi)核空間來說也有一張頁表,也負(fù)責(zé)將內(nèi)核空間的地址映射到物理地址中,這個(gè)頁表的名稱是內(nèi)核級頁表。這兩張頁表是相互獨(dú)立的!

內(nèi)核空間里面存放的是操作系統(tǒng)代碼和數(shù)據(jù), 所以執(zhí)行操作系統(tǒng)的代碼及系統(tǒng)調(diào)用,其實(shí)就是在使用這 1 GB 的內(nèi)核空間

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器

  1. 對于所有的進(jìn)程[0, 3]GB是不同的,每一個(gè)進(jìn)程都要有自己的用戶級頁表用來映射自己的代碼和數(shù)據(jù)。
  2. 所有的進(jìn)程[3,4]GB是一樣的,每一個(gè)進(jìn)程都可以看到同一張內(nèi)核級頁表,所有進(jìn)程都可以通過統(tǒng)一的窗口,看到同一個(gè)操作系統(tǒng)!
  3. 無論進(jìn)程如何切換,[3,4]GB不變,看到的都是OS的內(nèi)容,與進(jìn)程切換無關(guān),也就是說進(jìn)程切換其實(shí)切換的是[0, 3]G的用戶空間里面的內(nèi)容和用戶級頁表!
  4. 操作系統(tǒng)運(yùn)行的本質(zhì): 其實(shí)是在進(jìn)程的地址空間內(nèi)運(yùn)行的!
  5. 由于內(nèi)核空間中存放的是操作系統(tǒng)的代碼和數(shù)據(jù),所以調(diào)用系統(tǒng)調(diào)用的本質(zhì): 其實(shí)就如同調(diào)用動態(tài)庫中的函數(shù),在自己的地址空間中進(jìn)行函數(shù)跳轉(zhuǎn)并返回即可!

由于操作系統(tǒng)的代碼和數(shù)據(jù)是不能夠被輕易訪問的,所以在正文代碼中如果要執(zhí)行操作系統(tǒng)的代碼和數(shù)據(jù),需要先進(jìn)行狀態(tài)轉(zhuǎn)化,由用戶態(tài)轉(zhuǎn)化為內(nèi)核態(tài),才能成功執(zhí)行,那么這個(gè)狀態(tài)轉(zhuǎn)換是怎么實(shí)現(xiàn)的呢?

對于狀態(tài)轉(zhuǎn)化,操作系統(tǒng)采用的是軟硬件結(jié)合的方式。

  • 硬件方面
    CPU中,存在一個(gè) CR3 寄存器,這個(gè)寄存器的作用就是用來表是當(dāng)前處于進(jìn)程所處的狀態(tài)。

    當(dāng)CR3寄存器中的值為 3 時(shí):表示處于用戶態(tài),可以執(zhí)行用戶的代碼。
    當(dāng)CR3寄存器中的值為 0 時(shí):表示處于內(nèi)核態(tài),可以執(zhí)行操作系統(tǒng)的代碼。

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器

  • 軟件方面
    Linux并沒有給我們提供相應(yīng)的接口讓我們可以更改CR3寄存器里面的值,因?yàn)椴僮飨到y(tǒng)沒有辦法保證每一個(gè)用戶使用OS的代碼和數(shù)據(jù)時(shí)都要先更改CR3寄存器的值,所以OS提供的所有的系統(tǒng)調(diào)用,內(nèi)部在正執(zhí)行調(diào)用邏輯的時(shí)候,會去修改執(zhí)行級別! 這樣就保證了用戶使用系統(tǒng)調(diào)用的時(shí)候用戶所處的狀態(tài)是內(nèi)核態(tài)。

三、信號的處理

1、一般信號的處理流程

當(dāng)CPU正在執(zhí)行某條代碼時(shí),可能因?yàn)?strong>中斷、異?;蛳到y(tǒng)調(diào)用進(jìn)入內(nèi)核態(tài),然后在內(nèi)核態(tài)完成相應(yīng)的任務(wù),任務(wù)完成以后并不是直接返回用戶態(tài),而是調(diào)用系統(tǒng)調(diào)用do_signal()去處理可以遞達(dá)信號。

處理信號時(shí)會從1號到31號逐個(gè)檢查block表和pending表,當(dāng)blockpending表符合處理?xiàng)l件時(shí)才進(jìn)行信號遞達(dá)。

block表 pending表 是否處理 解釋
0 0 pending表為0代表該信號沒有產(chǎn)生過,無需處理
1 0 block表為0,信號被阻塞,無需處理
1 1 block表為0,信號被阻塞,無需處理
0 1 信號沒有被阻塞且pending表為1,代表該信號需要遞達(dá)

當(dāng)信號遞達(dá)時(shí)就需要調(diào)用handler表里面對應(yīng)位置的的函數(shù)進(jìn)行執(zhí)行:

handler表 執(zhí)行動作
SIG_IGN 忽略該信號,將該信號的pending表里面的1改為0,然后調(diào)用sys _sigreturn()系統(tǒng)調(diào)用
進(jìn)行返回原先中斷的位置并恢復(fù)為用戶態(tài)
SIG_DFL 執(zhí)行默認(rèn)動作:
1. 如果是暫停,就將該進(jìn)程從運(yùn)行隊(duì)列里面取出放到等待隊(duì)列里面,操作系統(tǒng)開始調(diào)度下一個(gè)進(jìn)程。
2. 如果是終止進(jìn)程,就直接結(jié)束該進(jìn)程,操作系統(tǒng)開始調(diào)度下一個(gè)進(jìn)程。

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器

2、捕捉信號的處理流程

對于被捕捉的信號,與普通信號有所不同,在調(diào)用自定義處理方法時(shí),由handler表里面的方法是用戶的代碼,所以還要進(jìn)行一次狀態(tài)轉(zhuǎn)換,轉(zhuǎn)換為用戶態(tài),然后執(zhí)行自定義動作,當(dāng)自定義動作執(zhí)行完畢時(shí)OS會自動調(diào)用一次系統(tǒng)調(diào)用sigreturn()使用戶態(tài)重新陷入內(nèi)核變成內(nèi)核態(tài),然后在內(nèi)核態(tài)再調(diào)用sys _sigreturn()進(jìn)行返回并恢復(fù)為用戶態(tài)。

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器

下面我們通過一張圖快速記憶捕捉信號的處理過程:

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器

ps: 在執(zhí)行hadler表中的方法之前,操作系統(tǒng)會先將pengding表對應(yīng)位置的1給清零。

3、信號捕捉函數(shù)sigaction

該函數(shù)是一個(gè)系統(tǒng)調(diào)用,功能與signal()函數(shù)類似但是功能會更加強(qiáng)大,sigaction函數(shù)可以讀取修改指定信號相關(guān)聯(lián)的處理動作。

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器

  • 參數(shù)

    1. 第一個(gè)參數(shù)是要捕捉的信號,第二個(gè)與第三個(gè)都是一個(gè)結(jié)構(gòu)體參數(shù),但是第二個(gè)參數(shù)是輸入型參數(shù),第三個(gè)是輸出形參數(shù)。
    2. act指針非空,則根據(jù)act修改該信號的處理動作。若oact指針非空,則通過oact傳出該信號原來的處理動作。actoact指向sigaction結(jié)構(gòu)體。
  • 返回值
    ?調(diào)用成功則返回0,出錯則返回-1

結(jié)構(gòu)體的定義如下:

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器

  1. 第一個(gè)字段是函數(shù)指針,這個(gè)函數(shù)就是我們捕捉完信號以后要執(zhí)行的處理動作。
  2. 第二個(gè)與第五個(gè)字段是實(shí)時(shí)信號的處理函數(shù),這里我們不做詳細(xì)解釋,可以直接設(shè)置為0。
  3. 第三個(gè)字段是一個(gè)信號屏蔽集,這個(gè)字段設(shè)置完畢以后我們可以在處理捕捉信號時(shí)對信號屏蔽集里面的信號進(jìn)行屏蔽。
  4. 第四個(gè)字段包含了一些選項(xiàng),一般默認(rèn)設(shè)置為0。

關(guān)于信號處理時(shí)的一些機(jī)制:

當(dāng)某個(gè)信號的處理函數(shù)被調(diào)用時(shí),內(nèi)核會自動將當(dāng)前信號加入進(jìn)程的信號屏蔽字,當(dāng)信號處理函數(shù)返回時(shí)自動恢復(fù)原來的信號屏蔽字,這樣就保證了在處理某個(gè)信號時(shí),如果這種信號再次產(chǎn)生,那么它會被阻塞到當(dāng)前處理結(jié)束為止。

下面我們來使用該函數(shù)驗(yàn)證一下信號處理時(shí):內(nèi)核會自動將當(dāng)前信號加入進(jìn)程的信號屏蔽字。

#include <iostream>
#include <cstring>
#include <unistd.h>
#include <signal.h>

// 打印pending表
void PrintPending(sigset_t set)
{
    std::cout << "當(dāng)前的pending表:";
    for (int i = 1; i <= 31; i++)
    {
        if (sigismember(&set, i))
        {
            std::cout << '1';
        }
        else
        {
            std::cout << '0';
        }
    }
    std::cout << std::endl;
}

// 自定義處理動作
void handler(int signum)
{
    std::cout << "捕捉到了" << signum << "信號,執(zhí)行了自定義動作" << std::endl;
    int cnt = 0;
    sigset_t set;
    sigemptyset(&set);
    while (cnt < 5)
    {
        cnt++;
        sigpending(&set);
        PrintPending(set);
        sleep(1);
    }
}

int main()
{
    struct sigaction act, oact;
    memset(&act, 0, sizeof(act));
    memset(&oact, 0, sizeof(act));
    act.sa_handler = handler;
    sigaction(2, &act, &oact);
    while (true)
    {
        sleep(1);
    }
}

這段代碼中我們對2號信號進(jìn)行了捕捉,自定義處理動作就是在自定義函數(shù)中停留5秒,每秒都打印一下當(dāng)前狀態(tài)的pending表。

我們可以運(yùn)行程序,然后給該進(jìn)程發(fā)送2號信號觸發(fā)自定義處理動作,然后再在5秒之內(nèi)再次發(fā)送2號信號觀察pending表是否為1,如果為1就代表當(dāng)前信號收到了阻塞,如果沒有變成1代表沒有受到阻塞。

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器

可以看到結(jié)果符合我們的理論。

接下來我們嘗試?yán)?code>sigaction將3, 4號信號也加入信號屏蔽集中。

#include <iostream>
#include <cstring>
#include <unistd.h>
#include <signal.h>


// 打印pending表
void PrintPending(sigset_t set)
{
    std::cout << "當(dāng)前的pending表:";
    for (int i = 1; i <= 31; i++)
    {
        if (sigismember(&set, i))
        {
            std::cout << '1';
        }
        else
        {
            std::cout << '0';
        }
    }
    std::cout << std::endl;
}


// 自定義處理動作
void handler(int signum)
{
    std::cout << "捕捉到了" << signum << "信號,執(zhí)行了自定義動作" << std::endl;
    int cnt = 0;
    sigset_t set;
    sigemptyset(&set);
    while (cnt < 15)
    {
        cnt++;
        sigpending(&set);
        PrintPending(set);
        sleep(1);
    }
}

int main()
{
    struct sigaction act, oact;
    sigset_t set, oset;
    // 進(jìn)行初始化
    memset(&act, 0, sizeof(act));
    memset(&oact, 0, sizeof(act));
    sigemptyset(&set);
    sigemptyset(&oset);
    // 將3, 4也加入信號屏蔽集中
    sigaddset(&set, 3);
    sigaddset(&set, 4);
    act.sa_handler = handler;
    // 設(shè)置信號屏蔽字
    act.sa_mask = set;
    sigaction(2, &act, &oact);

    std::cout << "進(jìn)程的pid是:" << getpid() << std::endl;
    while (true)
    {
        sleep(1);
    }
}

【Linux】進(jìn)程信號之信號的處理,linux,linux,運(yùn)維,服務(wù)器
如果我們還想將其他信號進(jìn)行屏蔽,我們可以繼續(xù)修改sigaction結(jié)構(gòu)體里面sa_mask字段。文章來源地址http://www.zghlxwxcb.cn/news/detail-650714.html

到了這里,關(guān)于【Linux】進(jìn)程信號之信號的處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Linux服務(wù)器上查詢進(jìn)程 ps aux

    在Linux服務(wù)器上查詢進(jìn)程,有以下幾種方法: 使用ps命令。這個(gè)命令用于報(bào)告當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)。可以用以下方式使用ps命令來查看進(jìn)程信息: ps aux:顯示系統(tǒng)中所有進(jìn)程的信息。 ps -e:顯示所有進(jìn)程的信息。 ps -f:顯示進(jìn)程的所有信息。 ps -l:以長格式顯示進(jìn)程信息。

    2024年02月05日
    瀏覽(36)
  • 【Linux運(yùn)維】shell腳本檢查服務(wù)器內(nèi)存和CPU利用率

    在管理服務(wù)器時(shí)候?qū)懥艘粋€(gè) shell腳本,在服務(wù)上實(shí)現(xiàn)每天凌晨3點(diǎn)查系統(tǒng)的指定文件夾下的容量大小,如果超過10G就要刪除3天前的內(nèi)容,還要時(shí)刻查詢內(nèi)存和cpu利用率,如果超過80%就要提示用戶出現(xiàn)過載 將以上代碼保存為一個(gè).sh文件,然后通過crontab在每天凌晨3點(diǎn)運(yùn)行即可:

    2024年02月09日
    瀏覽(33)
  • Linux服務(wù)器中查看進(jìn)程的四種方法

    1. 使用 ps aux 命令來查看,能以簡單列表的形式顯示出進(jìn)程信息 ps aux 用于報(bào)告當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)??梢源钆鋕ill指令隨時(shí)中斷、刪除不必要的程序. ps 命令是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令,使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)

    2024年02月02日
    瀏覽(33)
  • Linux網(wǎng)絡(luò)編程:多進(jìn)程 多線程_并發(fā)服務(wù)器

    文章目錄: 一:wrap常用函數(shù)封裝 wrap.h? wrap.c server.c封裝實(shí)現(xiàn) client.c封裝實(shí)現(xiàn) 二:多進(jìn)程process并發(fā)服務(wù)器 server.c服務(wù)器 實(shí)現(xiàn)思路 代碼邏輯? client.c客戶端 三:多線程thread并發(fā)服務(wù)器 server.c服務(wù)器 實(shí)現(xiàn)思路 代碼邏輯? client.c客戶端 ???? ??read 函數(shù)的返回值 wrap.h? wrap

    2024年02月12日
    瀏覽(31)
  • Linux本地部署1Panel服務(wù)器運(yùn)維管理面板并實(shí)現(xiàn)公網(wǎng)訪問

    Linux本地部署1Panel服務(wù)器運(yùn)維管理面板并實(shí)現(xiàn)公網(wǎng)訪問

    1Panel 是一個(gè)現(xiàn)代化、開源的 Linux 服務(wù)器運(yùn)維管理面板。高效管理,通過 Web 端輕松管理 Linux 服務(wù)器,包括主機(jī)監(jiān)控、文件管理、數(shù)據(jù)庫管理、容器管理等 下面我們介紹在Linux 本地安裝1Panel 并結(jié)合cpolar 內(nèi)網(wǎng)穿透工具實(shí)現(xiàn)遠(yuǎn)程訪問1Panel 管理界面 執(zhí)行如下命令一鍵安裝 1Panel: 安

    2024年02月04日
    瀏覽(107)
  • Linux服務(wù)器常見運(yùn)維性能測試(1)綜合跑分unixbench、superbench

    Linux服務(wù)器常見運(yùn)維性能測試(1)綜合跑分unixbench、superbench

    最近需要測試一批服務(wù)器的相關(guān)硬件性能,以及在常規(guī)環(huán)境下的硬件運(yùn)行穩(wěn)定情況,需要持續(xù)拷機(jī)測試穩(wěn)定性。所以找了一些測試用例。本次測試包括在服務(wù)器的高低溫下性能記錄及壓力測試,高低電壓下性能記錄及壓力測試,常規(guī)環(huán)境下CPU滿載穩(wěn)定運(yùn)行的功率記錄。 這個(gè)系

    2024年02月04日
    瀏覽(103)
  • 藍(lán)易云:Linux系統(tǒng)sshd命令 – openssh服務(wù)器守護(hù)進(jìn)程

    sshd是Linux系統(tǒng)中的一個(gè)守護(hù)進(jìn)程,它提供了遠(yuǎn)程登錄服務(wù)和安全的文件傳輸功能。以下是sshd的詳細(xì)教程。 1. 安裝openssh-server 在Debian/Ubuntu上安裝openssh-server命令如下: sudo apt-get update sudo apt-get install openssh-server 在CentOS/RHEL上安裝openssh-server命令如下: sudo yum update sudo yum install

    2024年02月16日
    瀏覽(26)
  • 基于linux下的高并發(fā)服務(wù)器開發(fā)(第二章)- 2.7 進(jìn)程退出、孤兒進(jìn)程、僵尸進(jìn)程

    基于linux下的高并發(fā)服務(wù)器開發(fā)(第二章)- 2.7 進(jìn)程退出、孤兒進(jìn)程、僵尸進(jìn)程

    ? 父進(jìn)程運(yùn)行結(jié)束,但子進(jìn)程還在運(yùn)行(未運(yùn)行結(jié)束),這樣的子進(jìn)程就稱為孤兒進(jìn)程 (Orphan Process)。 ? 每當(dāng)出現(xiàn)一個(gè)孤兒進(jìn)程的時(shí)候,內(nèi)核就把孤兒進(jìn)程的父進(jìn)程設(shè)置為 init ,而 init 進(jìn)程會循環(huán)地 wait() 它的已經(jīng)退出的子進(jìn)程。這樣,當(dāng)一個(gè)孤兒進(jìn)程凄涼地結(jié)束 了其生

    2024年02月16日
    瀏覽(24)
  • Linux高并發(fā)服務(wù)器開發(fā)---筆記1(環(huán)境搭建、系統(tǒng)編程、多進(jìn)程)

    Linux高并發(fā)服務(wù)器開發(fā)---筆記1(環(huán)境搭建、系統(tǒng)編程、多進(jìn)程)

    0613 首先這整個(gè)系列筆記屬于筆記①:??托U袥_刺集訓(xùn)營—C++工程師中的 第四章 筆記。 視頻課鏈接: 視頻1:Linux高并發(fā)服務(wù)器開發(fā)(40h); 視頻2:第4章 項(xiàng)目制作與技能提升(錄播)(26h30min); 視頻課3: 第5章 高頻考點(diǎn)與真題精講(錄播)中的 5.10-5.13 項(xiàng)目回顧 有個(gè)學(xué)

    2024年02月15日
    瀏覽(108)
  • [1Panel]開源,現(xiàn)代化,新一代的 Linux 服務(wù)器運(yùn)維管理面板

    [1Panel]開源,現(xiàn)代化,新一代的 Linux 服務(wù)器運(yùn)維管理面板

    本期測評試用一下1Panel這款面板。1Panel是國內(nèi)飛致云旗下開源產(chǎn)品。整個(gè)界面簡潔清爽,后端使用GO開發(fā),前端使用VUE的Element-Plus作為UI框架,整個(gè)面板的管理都是基于docker的,想法很先進(jìn)。官方還提供了視頻的使用教程,本期為大家按照本專欄的基本內(nèi)容進(jìn)行多方面的測評。

    2024年02月07日
    瀏覽(67)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包