洞察 Linux 進程管理

一、進程和線程的概念

1.進程

?(1)概念

進程是程序在操作系統中的一次執行過程,是系統進行資源分配和調度的基本單位。進程是程序的執行實例,擁有獨立的資源(如內存、文件描述符等)。每個進程在創建時會被分配唯一的進程ID,即為PID,也叫進程編號。

(2)特點

資源隔離:進程擁有獨立的虛擬地址空間。

獨立性:進程崩潰通常不會直接影響其他進程,代表了其高隔離性的特點。

通信成本高:進程間通信(IPC)需通過管道、共享內存、信號、消息隊列等機制。

創建開銷大:fork()系統調用會復制父進程的上下文。

2.線程

(1)概念

線程是進程中的一個執行單元,是 CPU 調度和分派的基本單位,是進程內的執行單元,共享進程的資源(如內存、文件句柄),但擁有獨立的棧和寄存器上下文。

(2)特點

資源共享:線程直接共享進程的內存、全局變量等,通信更高效。

輕量級:線程創建和切換的開銷遠小于進程。

同步需求:共享資源需通過互斥鎖(mutex)、信號量(semaphore) 等機制避免競態條件。

高風險:一個線程崩潰可能導致整個進程終止(共享地址空間)。

3.進程的狀態

運行態(Running)進程正在 CPU 上執行,系統中處于運行態的進程在某一時刻只有一個(單核 CPU),多核 CPU 環境下可以有多個。
就緒態(Ready)進程已經準備好運行,只等待 CPU 資源分配。
阻塞態(Blocked)進程因等待某一事件(如 I/O 操作完成、信號量獲取等)而暫時無法繼續執行。
停止態(Stopped)進程被暫停執行,通常是收到了特定信號(如 SIGSTOP)。
僵死態(Zombie)進程已經終止,但父進程尚未回收其資源(如進程描述符等)。

4.進程和線程之間的聯系與對比

(1)聯系:

線程隸屬于進程,且同一進程內的線程共享同一個進程ID(PID),但每個線程有唯一的線程ID(TID)

(2)對比:

進程線程
資源分配擁有獨立內存空間與系統資源,如文件描述符、打開文件等,進程間資源隔離,一個進程崩潰不影響其他進程,像辦公軟件進程崩潰不影響瀏覽器進程。共享所屬進程資源,無獨立系統資源,但有獨立執行棧與程序計數器記錄執行狀態。

調度

是系統資源分配和調度基本單位,調度時需保存和恢復內存映射、寄存器狀態等大量上下文信息,開銷大。是 CPU 調度和分派基本單位,因共享進程資源,調度時僅保存和恢復執行棧、程序計數器等少量信息,開銷小。

創建、銷毀和切換開銷

創建要分配獨立內存與系統資源,銷毀需釋放,創建、銷毀及切換時保存和恢復大量上下文信息,開銷均大。創建和銷毀僅分配、釋放少量資源,切換時保存和恢復少量上下文信息,開銷小且速度快。

通信機制

進程間通信(IPC)依靠管道、消息隊列等專門機制,較復雜,要額外同步、互斥操作保證數據安全一致。可直接訪問共享內存變量來通信,方式簡單高效,但多線程同時訪問共享資源易出現數據競爭,需鎖等同步機制保障線程安全。

健壯性

進程間資源隔離,健壯性較高,一個進程崩潰通常不影響其他進程。同一進程內線程共享資源,一個線程崩潰可能致使整個進程崩潰,健壯性較低。

二、查看進程狀態的相關命令

查看進程狀態的命令有(常用):ps、ps ax、ps aux、pgrep、pidof、top

1、ps相關命令(ps、ps ax、ps aux

ps命令的常用參數表

參數說明示例
基礎選項
a顯示所有用戶的進程(包括其他用戶)。ps a
x顯示無控制終端的進程(如守護進程)。ps x
ax組合使用:顯示所有進程(包括無終端的進程)。ps ax
信息控制
-o <字段>自定義輸出字段(支持?pid,?user,?%cpu,?comm,?tty,?stat?等)。ps axo pid,user,comm,%cpu
u顯示詳細資源占用(用戶、CPU、內存等,類似?ps aux)。ps aux
-e顯示所有進程(等效于?ax,但屬于Unix風格參數)。ps -e
篩選過濾
-p <PID>顯示指定PID的進程。ps ax -p 1234
-U <用戶>顯示指定用戶的進程。ps ax -U root
-C <命令>按進程名過濾(支持部分匹配)。ps ax -C nginx
--ppid <PID>顯示父進程為指定PID的子進程。ps ax --ppid 1
格式化輸出
--sort按字段排序(+%cpu?升序,-%mem?降序)。ps ax --sort=-%cpu
-H顯示進程層級關系(樹形結構)。ps axH
-f顯示完整格式(包括命令行參數)。ps axf
線程查看
-L顯示線程(LWP列)。ps axL
-T顯示線程(SPID列)。ps axT

ps ax的默認輸出列

列名說明示例
PID進程的唯一標識符(Process ID)。1234
TTY進程關聯的終端設備:
-??:無控制終端(如守護進程)。
-?pts/0:虛擬終端或SSH會話。
??或?pts/0
STAT進程狀態(由多個字符組成,見下方詳細說明)。Ss,?R+,?D
TIME進程累計占用CPU的時間(格式為分鐘:秒)。00:01,?10:23
COMMAND啟動進程的命令名稱或命令行參數:
-?[]?表示內核線程。
/usr/bin/nginx,?[kworker]

?ps aux的默認輸出列

列名說明示例
USER進程的所有者(用戶賬號)。root,?nginx
PID進程的唯一標識符(Process ID)。1234
%CPU進程占用CPU的百分比(單位:%),基于最近一次刷新周期內的使用情況。0.5,?99.0
%MEM進程占用物理內存的百分比(單位:%)。2.3,?15.8
VSZ虛擬內存大小(Virtual Memory Size,單位:KB),即進程申請的虛擬內存總量。123456(約123MB)
RSS實際使用的物理內存(Resident Set Size,單位:KB),即進程當前占用的非交換內存。65432(約65MB)
TTY進程關聯的終端設備:
-??:無控制終端(如守護進程)。
-?pts/0:虛擬終端或SSH會話。
??或?pts/0
STAT進程狀態(由多個字符組成,見下方詳細說明)。Ss,?R+,?Dl
START進程啟動時間(格式為小時:分鐘或日期,取決于運行時長)。10:00,?Jan01
TIME進程累計占用CPU的時間(格式為分鐘:秒)。00:01,?120:45
COMMAND啟動進程的命令名稱或命令行參數:
-?[]?表示內核線程。
/usr/bin/nginx,?[kworker]

2、pgrep

作用:

pgrep?用于根據?進程名、用戶、組等條件快速查找進程PID,默認僅輸出匹配的進程ID(PID)。
ps/grep組合相比,pgrep更高效且語法簡潔。?

pgrep常用參數表

參數說明輸出新增內容示例
基礎過濾
-u <用戶>按用戶過濾進程(用戶名或UID)。僅PIDpgrep -u root
-G <組>按組過濾進程(組名或GID)。僅PIDpgrep -G www-data
-x精確匹配進程名(需全名匹配)。僅PIDpgrep -x sshd
輸出控制
-l顯示進程名(與PID一同輸出)。進程名1234: nginx
-a顯示完整命令行(需結合-l)。完整命令1234: nginx: worker process
-c輸出匹配進程的數量(計數)。數字3
-d <分隔符>自定義PID分隔符(默認為換行)。無,格式變化pgrep -d ',' nginx?→?1234,5678
信號與狀態
-f匹配完整命令行(而非僅進程名)。無,過濾條件變化pgrep -f "nginx -g"
-n僅顯示最新(最近啟動)的進程PID。僅PIDpgrep -n nginx
-o僅顯示最舊(最早啟動)的進程PID。僅PIDpgrep -o nginx

?

3、pidof

命令:

pidof 進程名稱示例
pidof nginx      # 輸出:1234 5678 (多個nginx進程的PID)
pidof sshd       # 輸出:8910       (sshd守護進程的PID)

顯示單個PID(-s):

pidof -s <進程名>  # 僅返回一個PID(通常是最新的進程)示例
pidof -s python3  # 輸出:9999 (最近啟動的Python3進程PID)

pidof常用參數表?

參數說明
-s僅返回一個PID(單實例進程適用)。
-c僅返回與當前運行環境相同根目錄(chroot)下的進程PID。
-x同時匹配執行該腳本的Shell進程PID(用于腳本文件)。
-o <PID>排除指定PID的進程(可多次使用,如?-o 1234 -o 5678)。
-d <分隔符>自定義PID分隔符(默認是空格)。

4、top

概念:

top?是 Linux 系統中用于?實時監控系統資源使用情況和進程狀態?的核心命令行工具。它能動態顯示 CPU、內存、交換分區、進程負載等關鍵指標,幫助用戶快速定位性能瓶頸。

(1)top 的核心功能
① 實時刷新:

默認每 3 秒更新一次數據(可配置)。

② 多維度展示:
系統資源概覽:

CPU、內存、負載、運行時間等。

進程列表:

按資源占用排序的進程詳情(PID、用戶、CPU、內存等)。

③ 交互式操作:

支持動態排序、篩選、終止進程等操作。

(2)top內容詳解(實例演示)

第一行:系統時間、運行時長、登錄用戶數、平均負載。

第二行:進程總數及狀態統計(運行、睡眠、停止、僵尸)。

第三行:CPU 使用率(用戶態 us、內核態 sy、空閑 id、等待I/O wa 等)。

第四行:物理內存使用情況(總量、空閑、已用、緩存)。

第五行:交換分區使用情況。

關鍵字眼:

PID:進程ID。

USER:進程所有者。

%CPU:CPU 占用百分比。

%MEM:物理內存占用百分比。

VIRT:虛擬內存總量(KB)。

RES:實際物理內存占用(KB)。

SHR:共享內存大小(KB)。

S:進程狀態(R=運行, S=睡眠, Z=僵尸等)。

TIME+:累計 CPU 占用時間。

三、進程的前/后臺調用

<ctrl>+<z>

在終端中,當一個進程正在前臺運行并占用著 shell 時,按下?Ctrl + Z?組合鍵可以將該進程暫停并打入后臺掛起。此時,進程處于停止狀態,但并未終止,它會釋放對終端的控制權,讓用戶可以在 shell 中繼續輸入其他命令。

bg

用于將后臺掛起的進程在后臺運行起來。

fg

用于把后臺進程調回前臺。

命令 &

在命令后面加上?&,可以讓該命令對應的進程在后臺運行。

jobs

命令用于查看當前 shell 中在后臺的所有工作,即顯示所有后臺進程的信息,包括進程的編號、狀態以及對應的命令等。

四、進程的優先級

1、概念

在 Linux 系統中,進程優先級決定了進程獲取 CPU 時間的順序。優先級高的進程會更頻繁地被調度執行,這對系統性能調優和資源管理至關重要。

2、優先級種類

(1)概念

進程也分為“可控的”和“不可控的”,“可控”,說明進程可以被用戶或管理員進行修改或手動設置,這種即為靜態優先級,而“不可控”,即不能被用戶或管理員進行修改等操作,由系統內核根據進程的運行狀態來調整(如等待時間、CPU 使用率),優化調度公平性,避免低優先級進程長期饑餓,這種即為動態優先級。

(2)靜態優先級的調節

用戶通過 nice 或 renice 設置,范圍 -20(最高)到 19(最低),能直接影響普通進程的初始調度權重。

nice值
? ? ? ? nice值用來調整控制進程優先級的,nice值越低(越負),優先級就越高;Nice 值范圍:-20(最高優先級)到 19(最低優先級),默認值為 0

命令格式:

nice -n <調整值> <命令> ? # 調整值為目標 Nice 值與默認值(0)的差值

示例??:

解釋:用指定權限-5來打開cat命令?

renice值

?renice命令可以修改進程的nice值,如renice -5 3595,其中 -5 為你想要修改的nice值為多少,后面的編號3595即為進程編號

Tips:查看進程編號可以用監視(watch)來監控進程的pid,即可看到進程編號,也可以用vim &來查看

命令格式:

renice -5(想要修改的nice值) 16410(進程編號)

(3)進程狀態字符解釋

字符說明
R進程正在運行或在就緒隊列中等待 CPU 分配。
S可中斷睡眠:等待事件完成(如 I/O 操作、信號)。
D不可中斷睡眠:通常等待硬件操作(如磁盤 I/O),不能被信號中斷。
Z僵尸進程:進程已終止,但其退出狀態未被父進程回收。
T進程被作業控制信號(如?SIGSTOPSIGTSTP)暫停。
t進程被調試器暫停(如通過?ptrace?跟蹤)。
X進程完全終止(極少見,通常瞬間消失)。
<高優先級:進程的 Nice 值為負(優先級高于默認)。
N低優先級:進程的 Nice 值為正(優先級低于默認)。
s會話領導者:進程是會話(Session)的首進程(如 Shell 進程)。
l多線程:進程是多線程的(有多個輕量級進程 LWP)。
+前臺進程組:進程屬于終端的前臺進程組(可接收輸入)。
L鎖定內存:進程將部分內存鎖定(如通過?mlock?避免換出)。
I空閑進程:內核線程處于空閑狀態(某些系統顯示為?I)。

五、進程信號

1.概念:

進程信號是操作系統用于在進程之間傳遞事件通知的一種機制,它可以讓操作系統、其他進程或進程自身向某個進程發送信號,以通知該進程發生了特定的事件,進程接收到信號后會根據信號的類型和自身的狀態做出相應的反應。

2.用戶可控制的進程信號(表格)

信號名稱信號值默認行為典型用途可否捕獲/忽略
SIGHUP1終止進程通知進程重新加載配置(如?nginx -s reload)。
SIGINT2終止進程用戶按下?Ctrl+C?中斷前臺進程。
SIGQUIT3終止進程并生成核心轉儲用戶按下?Ctrl+\?強制終止并調試(生成 core dump)。
SIGKILL9強制終止進程無條件終止進程(無法被捕獲或忽略)。
SIGTERM15終止進程請求進程正常退出(允許清理資源),默認的?kill?信號。
SIGSTOP17,19,23暫停進程暫停進程(不可被捕獲或忽略),用戶按下?Ctrl+Z(實際發送?SIGTSTP)。
SIGCONT18,25,26繼續運行恢復被暫停的進程(如?bg/fg?命令)。
SIGTSTP20暫停進程用戶按下?Ctrl+Z?暫停前臺進程(可捕獲處理)。
SIGUSR110終止進程用戶自定義用途(如通知進程切換日志文件)。
SIGUSR212終止進程用戶自定義用途(如通知進程更新配置)。

3、控制進程信號的命令

(1)killall命令

該命令可以向內核詢問一個進程存不存在,如:

killall -<信號名或值> <進程名>     # 向所有同名進程發送信號如
killall -0(信號編號) gedit(進程的名字或編號)

其中的 -0 位為信號編號,且有許多其他數字代表,但用戶可以控制的常用信號只有代碼這些(上面的表有詳細的介紹):-1? -2? -3? -15? -9? -18? -19? -20

(2)kill命令

kill可以精準的將一個進程殺死(結束)如:

kill -<信號名或值> <PID>          # 向指定 PID 發送信號如
kill -9(信號編號) 16410(進程的名字或編號)

(3)pkill命令

pkill -<信號名或值> <模式>         # 按模式匹配進程并發送信號

pkill可以終止一個用戶

我們先創建一個用戶test來測試pkill命令,并登錄上此test用戶

另起一個終端命令行,輸入pkill命令

六、systemd守護進程

1.概念

守護進程(Daemon)是一種在后臺持續運行的特殊進程,它不與終端直接交互,通常在系統啟動 時自動啟動,并在系統關閉時才停止。

2.作用

守護進程的設計目的是為系統提供各種服務,例如網絡服務(如 HTTP 服務器、FTP 服務器)、日 志服務、定時任務服務等。它們默默地在后臺運行,為其他進程和用戶提供支持,確保系統的正常 運行。

3.特性(核心)

特性說明
無控制終端脫離終端運行(TTY 顯示為??),不接收用戶直接輸入。
后臺運行默默執行任務,不占用用戶交互界面。
獨立會話創建新會話(Session)并成為會話領導者(Session Leader)。
脫離父進程通過兩次?fork()?脫離原進程,由?init(PID=1)接管。
固定工作目錄通常將工作目錄設置為根目錄(/)或特定目錄(如?/var/run)。
日志輸出將標準輸入/輸出重定向到文件(如?/var/log)或?syslog

4.常用命令表

命令作用示例
systemctl start <服務名>啟動服務sudo systemctl start nginx
systemctl stop <服務名>停止服務sudo systemctl stop sshd
systemctl restart <服務名>重啟服務sudo systemctl restart mysql
systemctl reload <服務名>重新加載配置(不重啟服務)sudo systemctl reload nginx
systemctl status <服務名>查看服務狀態systemctl status docker
systemctl enable <服務名>啟用開機自啟sudo systemctl enable httpd
systemctl disable <服務名>禁用開機自啟sudo systemctl disable postfix
systemctl is-enabled <服務名>檢查服務是否開機自啟systemctl is-enabled cron
systemctl mask <服務名>禁用服務(阻止手動或自動啟動)sudo systemctl mask apache2
systemctl unmask <服務名>解除禁用sudo systemctl unmask apache2

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

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

相關文章

PyTorch 實現圖像版多頭注意力(Multi-Head Attention)和自注意力(Self-Attention)

本文提供一個適用于圖像輸入的多頭注意力機制&#xff08;Multi-Head Attention&#xff09;PyTorch 實現&#xff0c;適用于 ViT、MAE 等視覺 Transformer 中的注意力計算。 模塊說明 輸入支持圖像格式 (B, C, H, W)內部轉換為序列 (B, N, C)&#xff0c;其中 N H * W多頭注…

每日一題(小白)字符串娛樂篇16

分析題意可以了解到本題要求在一串字符串中找到所有組合起來排序遞增的字符串。我們可以默認所有字符在字符串中的上升序列是1&#xff0c;從第一個字符開始找&#xff0c;如果后面的字符大于前面的字符就說明這是一個上序列那么后面字符所在的數組加一&#xff0c;如果連接不上…

Ubuntu 22 Linux上部署DeepSeek R1保姆式操作詳解(Xinference方式)

一、安裝步驟 1.基礎環境安裝 安裝顯卡驅動、cuda&#xff0c;根據自己硬件情況查找相應編號&#xff0c;本篇不介紹這部分內容&#xff0c;只給出參考指令&#xff0c;詳情請讀者自行查閱互聯網其它參考資料。 sudo apt install nvidia-utils-565-server sudo apt install…

Immutable.js 完全指南:不可變數據的藝術與實踐

引言 在現代前端開發中&#xff0c;狀態管理是一個核心挑戰。隨著應用復雜度增加&#xff0c;如何高效、安全地管理應用狀態變得至關重要。Immutable.js 是 Facebook 推出的一個 JavaScript 庫&#xff0c;它提供了持久化不可變數據結構&#xff0c;可以幫助開發者更好地管理應…

字符串數據類型的基本運算

任務描述 本關任務&#xff1a;從后臺輸入任意三個字符串&#xff0c;求最大的字符串。 相關知識 字符串本身是存放在一塊連續的內存空間中&#xff0c;并以’\0’作為字符串的結束標記。 字符指針變量本身是一個變量&#xff0c;用于存放字符串的第 1 個字符的地址。 字符數…

Ubuntu 22.04 一鍵部署openManus

openManus 前言 OpenManus-RL,這是一個專注于基于強化學習(RL,例如 GRPO)的方法來優化大語言模型(LLM)智能體的開源項目,由來自UIUC 和 OpenManus 的研究人員合作開發。 前提要求 安裝deepseek docker方式安裝 ,windows 方式安裝,Linux安裝方式

PDF 轉圖片,一行代碼搞定!批量支持已上線!

大家好&#xff0c;我是程序員晚楓。今天我要給大家帶來一個超實用的功能——popdf 現在支持 PDF 轉圖片了&#xff0c;而且還能批量操作&#xff01;是不是很激動&#xff1f;別急&#xff0c;我來手把手教你玩轉這個功能。 1. 一行代碼搞定單文件轉換 popdf 的核心就是簡單暴…

《比特城的機密郵件:加密、簽名與防篡改的守護之戰》

點擊下面圖片帶您領略全新的嵌入式學習路線 &#x1f525;爆款熱榜 88萬閱讀 1.6萬收藏 第一章&#xff1a;風暴前的密令 比特城的議會大廳內&#xff0c;首席長老艾德文握著一卷足有半人高的羊皮紙&#xff0c;眉頭緊鎖。紙上是即將頒布的《新紀元法典》——這份文件不僅內…

8.用戶管理專欄主頁面開發

用戶管理專欄主頁面開發 寫在前面用戶權限控制用戶列表接口設計主頁面開發前端account/Index.vuelangs/zh.jsstore.js 后端Paginator概述基本用法代碼示例屬性與方法 urls.pyviews.py 運行效果 總結 歡迎加入Gerapy二次開發教程專欄&#xff01; 本專欄專為新手開發者精心策劃了…

http://noi.openjudge.cn/_2.5基本算法之搜索_1804:小游戲

文章目錄 題目深搜代碼寬搜代碼深搜數據演示圖總結 題目 1804:小游戲 總時間限制: 1000ms 內存限制: 65536kB 描述 一天早上&#xff0c;你起床的時候想&#xff1a;“我編程序這么牛&#xff0c;為什么不能靠這個賺點小錢呢&#xff1f;”因此你決定編寫一個小游戲。 游戲在一…

發生梯度消失, 梯度爆炸問題的原因,怎么解決?

目錄 一、梯度消失的原因 二、梯度爆炸的原因 三、共同的結構性原因 四、解決辦法 五、補充知識 一、梯度消失的原因 梯度消失指的是在反向傳播過程中&#xff0c;梯度隨著層數的增加指數級減小&#xff08;趨近于0&#xff09;&#xff0c;導致淺層網絡的權重幾乎無法更新…

【USRP】srsRAN 開源 4G 軟件無線電套件

srsRAN 是SRS開發的開源 4G 軟件無線電套件。 srsRAN套件包括&#xff1a; srsUE - 具有原型 5G 功能的全棧 SDR 4G UE 應用程序srsENB - 全棧 SDR 4G eNodeB 應用程序srsEPC——具有 MME、HSS 和 S/P-GW 的輕量級 4G 核心網絡實現 安裝系統 Ubuntu 20.04 USRP B210 sudo …

ChatGPT 4:解鎖AI文案、繪畫與視頻創作新紀元

文章目錄 一、ChatGPT 4的技術革新二、AI文案創作&#xff1a;精準生成與個性化定制三、AI繪畫藝術&#xff1a;從文字到圖像的神奇轉化四、AI視頻制作&#xff1a;自動化剪輯與創意實現五、知識庫與ChatGPT 4的深度融合六、全新的變革和機遇《ChatGPT 4 應用詳解&#xff1a;A…

在js中數組相關用法講解

數組 uniqueArray 簡單數組去重 /*** 簡單數組去重* param arr* returns*/ export const uniqueArray <T>(arr: T[]) > [...new Set(arr)];const arr1 [1,1,1,1 2, 3];uniqueArray(arr); // [1,2,3]uniqueArrayByKey 根據 key 數組去重 /*** 根據key數組去重* …

RT-Thread ulog 日志組件深度分析

一、ulog 組件核心功能解析 輕量化與實時性 ? 資源占用&#xff1a;ulog 核心代碼僅需 ROM<1KB&#xff0c;RAM<0.2KB&#xff0c;支持在資源受限的MCU&#xff08;如STM32F103&#xff09;中運行。 ? 異步/同步模式&#xff1a;默認采用異步環形緩沖區&#xff08;rt_…

T113s3遠程部署Qt應用(dropbear)

T113-S3 是一款先進的應用處理器&#xff0c;專為汽車和工業控制市場而設計。 它集成了雙核CortexTM-A7 CPU和單核HiFi4 DSP&#xff0c;提供高效的計算能力。 T113-S3 支持 H.265、H.264、MPEG-1/2/4、JPEG、VC1 等全格式解碼。 獨立的硬件編碼器可以編碼為 JPEG 或 MJPEG。 集…

12.青龍面板自動化我的生活

安裝 docker方式 docker run -dit \ -v /root/ql:/ql/data \ -p 5700:5700 \ -e ENABLE_HANGUPtrue \ -e ENABLE_WEB_PANELtrue \ --name qinglong \ --hostname qinglong \ --restart always \ whyour/qinglongk8s方式 https://truecharts.org/charts/stable/qinglong/ he…

Maven 遠程倉庫推送方法

步驟 1&#xff1a;配置 pom.xml 中的遠程倉庫地址 在項目的 pom.xml 文件中添加 distributionManagement 配置&#xff0c;指定遠程倉庫的 URL。 xml 復制 <project>...<distributionManagement><!-- 快照版本倉庫 --><snapshotRepository><id…

Spring Boot 日志 配置 SLF4J 和 Logback

文章目錄 一、前言二、案例一&#xff1a;初識日志三、案例二&#xff1a;使用Lombok輸出日志四、案例三&#xff1a;配置Logback 一、前言 在開發 Java 應用時&#xff0c;日志記錄是不可或缺的一部分。日志可以記錄應用的運行狀態、錯誤信息和調試信息&#xff0c;幫助開發者…

JS API 事件監聽

焦點事件案例&#xff1a;搜索框激活下拉菜單 事件對象 事件對象存儲事件觸發時的相關信息 可以判斷用戶按鍵&#xff0c;點擊元素等內容 如何獲取 事件綁定的回調函數中的第一個形參就是事件對象 一般命名為e,event 事件對象常用屬性 type類型 click mouseenter client…