管理Linux系统中的进程
1.什么是進(jìn)程?
(1)進(jìn)程與程序
????在Linux系統(tǒng)當(dāng)中,觸發(fā)任何一個(gè)事件時(shí),系統(tǒng)都會(huì)將它定義成為一個(gè)進(jìn)程,并且給予這個(gè)進(jìn)程一個(gè)ID,稱為PID,同時(shí)依據(jù)啟發(fā)這個(gè)進(jìn)程的用戶與相關(guān)屬性關(guān)系,給予這個(gè)PID一組有效的權(quán)限設(shè)定。之后,這個(gè)PID能夠在系統(tǒng)上面進(jìn)行的動(dòng)作,就和這個(gè)PID的權(quán)限有關(guān)。
????程序是為了完成某種任務(wù)而設(shè)計(jì)的軟件,是存儲(chǔ)在磁盤上包含可執(zhí)行的機(jī)器指令和數(shù)據(jù)的靜態(tài)實(shí)體。
????進(jìn)程是一個(gè)程序一次執(zhí)行的過程,在操作系統(tǒng)中執(zhí)行特定的任務(wù),是一個(gè)隨執(zhí)行過程不斷變化的實(shí)體,和程序要包含指令和數(shù)據(jù)一樣,進(jìn)程也包含程序計(jì)數(shù)器和所有CPU寄存器的值,同時(shí)它的堆棧中存儲(chǔ)著如子程序參數(shù)、返回地址以及變量之類的臨時(shí)數(shù)據(jù)。當(dāng)前的執(zhí)行程序,或者說進(jìn)程,包含著當(dāng)前處理器中的活動(dòng)狀態(tài)。進(jìn)程是Linux系統(tǒng)中基本的調(diào)度單位。
????進(jìn)程具有獨(dú)立的權(quán)限與職責(zé),如果系統(tǒng)中某個(gè)進(jìn)程崩潰,它不會(huì)影響到其余的進(jìn)程,每個(gè)進(jìn)程運(yùn)行在其各自虛擬地址空間中,通過內(nèi)核控制下的通信機(jī)制,它們之間才能發(fā)生聯(lián)系。
進(jìn)程在生命期內(nèi)將使用系統(tǒng)中的資源,它利用系統(tǒng)中的CPU來執(zhí)行指令,用物理內(nèi)存來放置指令和數(shù)據(jù)。使用文件系統(tǒng)提供的功能打開并使用文件,同時(shí)直接或間接地使用物理設(shè)備。)
(2)進(jìn)程狀態(tài)
| R | 可執(zhí)行狀態(tài)(RUNNING,READY) |
| S | 可喚醒睡眠狀態(tài) |
| D | 不可喚醒睡眠狀態(tài) |
| T | 暫停狀態(tài) |
| Z | 僵死態(tài) |
????R:ready準(zhǔn)備完全,所有東西都已經(jīng)加載完畢,就等著cpu對(duì)它進(jìn)行處理(處在進(jìn)程隊(duì)列),running是cpu正在進(jìn)行處理的那個(gè)進(jìn)程。
????S:程序在使用cpu進(jìn)行處理時(shí),所使用的cpu時(shí)間已經(jīng)到達(dá)了限制,那么cpu就會(huì)立即把它終止掉,去處理下一個(gè)進(jìn)程,等處理完畢,再去喚醒剛才的程序。
????D:一般情況下,程序不可喚醒狀態(tài)發(fā)生在一個(gè)程序需要去加載磁盤里比較大的文件時(shí),在程序運(yùn)行時(shí)突然需要這個(gè)數(shù)據(jù)了,它需要去磁盤里面加載,當(dāng)它在沒有加載完畢之前,它的狀態(tài)是不可被喚醒的。
????T:停止?fàn)顟B(tài),打開一個(gè)gedit,編輯內(nèi)容,然后在shell界面執(zhí)行“ctrl+z”將gedit進(jìn)程打入后臺(tái),gedit編輯任務(wù)就暫停了(一個(gè)進(jìn)程停止不等于進(jìn)程結(jié)束)。
????Z:在系統(tǒng)當(dāng)中,程序在運(yùn)行過程中,會(huì)用到系統(tǒng)資源,程序結(jié)束后,程序所占用的系統(tǒng)資源應(yīng)該全部被釋放掉。
????有一類程序:這個(gè)程序本身已經(jīng)結(jié)束了,但它所使用到的系統(tǒng)資源還抓著不放,這樣的進(jìn)程狀態(tài)叫做僵死態(tài)。一般情況下,是因?yàn)橄到y(tǒng)當(dāng)中的程序在編寫時(shí)候bug所導(dǎo)致的,就是它在結(jié)束以后仍然持續(xù)的去抓著系統(tǒng)當(dāng)中的資源不放。
(3)線程與進(jìn)程的區(qū)別在哪里?
????線程是程序調(diào)用的最小單位;進(jìn)程是資源調(diào)用的最小單位。
????進(jìn)程和進(jìn)程之間的溝通,因?yàn)橄到y(tǒng)資源分配問題,溝通不容易,為了使資源調(diào)用更加快捷,所以提出了線程;
????線程和線程之間的數(shù)據(jù)是互通的,它們共用了一部分環(huán)境變量,使得線程和線程之間的溝通更快捷一點(diǎn)。
2.進(jìn)程查看
(1)圖形方式查看:gnome-system-monitor
(2)進(jìn)程查看命令ps:靜態(tài)查看進(jìn)程信息
pstree 查看進(jìn)程樹
系統(tǒng)啟動(dòng)后,systemd為初始化程序,不會(huì)自己關(guān)閉結(jié)束自己,只有關(guān)機(jī)才可以,或者結(jié)束所有子進(jìn)程后,該初始化進(jìn)程才會(huì)被關(guān)閉;
一般由初始化程序來控制其它進(jìn)程的開始和結(jié)束;
并不是父級(jí)進(jìn)程結(jié)束以后子進(jìn)程一定會(huì)結(jié)束,剩下的子進(jìn)程被稱為孤兒進(jìn)程
ps自己所在shell中運(yùn)行的進(jìn)程
直接執(zhí)行不加任何選項(xiàng)的ps命令時(shí),則只顯示當(dāng)前用戶會(huì)話中打開的進(jìn)程。
PID表示該進(jìn)程的唯一ID號(hào)
TTY表示該進(jìn)程在哪個(gè)終端上運(yùn)行。不是從終端啟動(dòng)的進(jìn)程或者與終端機(jī)無關(guān)的進(jìn)程顯示為 ?
TIME該進(jìn)程使用CPU的累計(jì)時(shí)間
CMD該進(jìn)程所運(yùn)行的命令
ps a 在shell中運(yùn)行的所有進(jìn)程,包括shell的環(huán)境bash
[root@workstation Desktop]# ps aPID TTY STAT TIME COMMAND1155 tty1 Ssl+ 0:00 /usr/libexec/gdm-wayland-session gnome-session --auto1239 tty1 Sl+ 0:00 /usr/libexec/gnome-session-binary --autostart /usr/sh1279 tty1 Sl+ 0:05 /usr/bin/gnome-shell2328 tty2 SNl+ 0:00 /usr/libexec/tracker-miner-fs2350 tty2 Sl 0:00 /usr/libexec/ibus-engine-simple2549 pts/0 Ss 0:00 bash3039 pts/0 R+ 0:00 ps a [root@workstation Desktop]#ps -a 在shell中運(yùn)行的所有進(jìn)程,不包括shell環(huán)境本身信息bash
[root@workstation Desktop]# ps -aPID TTY TIME CMD1239 tty1 00:00:00 gnome-session-b1279 tty1 00:00:05 gnome-shell2316 tty2 00:00:00 seapplet2325 tty2 00:00:00 tracker-miner-a2328 tty2 00:00:00 tracker-miner-f2350 tty2 00:00:00 ibus-engine-sim2768 pts/0 00:00:00 ps [root@workstation Desktop]#ps -u 以用戶為歸類來顯示進(jìn)程狀態(tài)信息
| USER | 用戶名稱 |
| PID | 進(jìn)程ID |
| %CPU | CPU用量百分比 |
| %MEM | 內(nèi)存用量百分比 |
| VSZ | 占用虛擬內(nèi)存大小 |
| RSS | 常駐內(nèi)存集大小 |
| TTY | 字符終端 |
| STAT | 進(jìn)程狀態(tài) |
| START | 運(yùn)行時(shí)間 |
| TIME | 占用cpu時(shí)間 |
| COMMAND | 進(jìn)程名稱 |
ps -e 顯示所有進(jìn)程信息,與-A選項(xiàng)功能相同
[root@workstation Desktop]# ps -ePID TTY STAT TIME COMMAND1893 ttyS0 Ss+ 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,38400,9601932 tty2 Ssl+ 0:00 /usr/libexec/gdm-x-session --run-script env GNOME_SHE1936 tty2 Rl+ 0:01 /usr/libexec/Xorg vt2 -displayfd 3 -auth /run/user/0/1967 tty2 Sl+ 0:00 /usr/libexec/gnome-session-binary --session gnome-cla2057 tty2 Sl+ 0:09 /usr/bin/gnome-shell MODULES_RUN_QUARANTINE=LD_LIBRAR2103 tty2 Sl 0:00 ibus-daemon --xim --panel disable MODULES_RUN_QUARANT2107 tty2 Sl 0:00 /usr/libexec/ibus-dconf MODULES_RUN_QUARANTINE=LD_LIBps x 顯示所有與終端無關(guān)進(jìn)程
[root@workstation Desktop]# ps xPID TTY STAT TIME COMMAND1 ? Ss 0:02 /usr/lib/systemd/systemd --switched-root --system --d2 ? S 0:00 [kthreadd]3 ? I< 0:00 [rcu_gp]4 ? I< 0:00 [rcu_par_gp]6158 ? I 0:00 [kworker/1:0-xfs-cil/vda1]6264 ? I 0:00 [kworker/1:1-xfs-reclaim/vda1]6289 ? S 0:00 sleep 606290 pts/0 R+ 0:00 ps x [root@workstation Desktop]#ps f 層級(jí)結(jié)構(gòu)顯示進(jìn)程信息
[root@workstation Desktop]# ps fPID TTY STAT TIME COMMAND2549 pts/0 Ss 0:00 bash6306 pts/0 R+ 0:00 \_ ps f1932 tty2 Ssl+ 0:00 /usr/libexec/gdm-x-session --run-script env GNOME_SHE1936 tty2 Sl+ 0:08 \_ /usr/libexec/Xorg vt2 -displayfd 3 -auth /run/use1967 tty2 Sl+ 0:00 \_ /usr/libexec/gnome-session-binary --session gnome2057 tty2 Sl+ 0:49 \_ /usr/bin/gnome-shell2103 tty2 Sl 0:00 | \_ ibus-daemon --xim --panel disable2107 tty2 Sl 0:00 | \_ /usr/libexec/ibus-dconf2108 tty2 Sl 0:00 | \_ /usr/libexec/ibus-extension-gtk32350 tty2 Sl 0:00 | \_ /usr/libexec/ibus-engine-simple2186 tty2 Sl+ 0:00 \_ /usr/libexec/gsd-power2187 tty2 Sl+ 0:00 \_ /usr/libexec/gsd-print-notificationsps -f 顯示完整格式信息
[root@workstation Desktop]# ps -f UID PID PPID C STIME TTY TIME CMD root 2549 2542 0 04:01 pts/0 00:00:00 bash root 6525 2549 0 07:38 pts/0 00:00:00 ps -f [root@workstation Desktop]#ps -o 顯示進(jìn)程的指定信息
(3)常用ps組合命令查看進(jìn)程
ps aux 顯示系統(tǒng)當(dāng)中的所有進(jìn)程并顯示進(jìn)程用戶
ps ax 顯示當(dāng)前系統(tǒng)中的所有進(jìn)程(在此只截取一部分進(jìn)程代碼,以上同是)
[root@workstation Desktop]# ps axPID TTY STAT TIME COMMAND1 ? Ss 0:02 /usr/lib/systemd/systemd --switched-root --system --d2 ? S 0:00 [kthreadd]3 ? I< 0:00 [rcu_gp]4 ? I< 0:00 [rcu_par_gp]6576 ? I 0:00 [kworker/1:1-events_power_efficient]6656 ? S 0:00 sleep 606657 pts/0 R+ 0:00 ps ax [root@workstation Desktop]#(4)進(jìn)程排序
命令格式:ps ax --sort=要顯示的內(nèi)容
顯示cpu使用量排在前五的pid:ps axo pid,comm,%cpu --sort=-%cpu | head -n 6
(5)進(jìn)程的stat列顯示的信息意義
| s | 沒有父進(jìn)程,頂級(jí)進(jìn)程 |
| l | 在內(nèi)存中有鎖定空間(進(jìn)程結(jié)束前不會(huì)被系統(tǒng)回收) |
| + | 正在前臺(tái)運(yùn)行的進(jìn)程 |
| N | 進(jìn)程優(yōu)先級(jí)低 |
| < | 進(jìn)程優(yōu)先級(jí)高 |
(6)pgrep顯示指定信息進(jìn)程
| pgrep -u uid | 顯示指定用戶進(jìn)程 |
| pgrep -U name | 顯示指定用戶進(jìn)程 |
| pgrep -t tty | 顯示指定終端進(jìn)程 |
| pgrep -l | 顯示進(jìn)程名稱 |
| pgrep -a | 顯示完整格式進(jìn)程名 |
| pgrep -P pid | 顯示指定進(jìn)程的子進(jìn)程 |
超級(jí)用戶執(zhí)行一個(gè)切換到普通用戶命令的進(jìn)程
pgrep -u 1000 查看用戶1000進(jìn)程號(hào)(pid)
普通用戶student執(zhí)行一個(gè)watch進(jìn)程
pgrep -P 6808(父進(jìn)程student進(jìn)程號(hào))查看子進(jìn)程watch的進(jìn)程號(hào)
(7)pidof根據(jù)進(jìn)程名稱獲取pid
超級(jí)用戶觸發(fā)watch進(jìn)程
pidof watch 獲取watch進(jìn)程pid
(8)top:動(dòng)態(tài)觀察進(jìn)程變化
相比于ps是取一個(gè)時(shí)間點(diǎn)的進(jìn)程狀態(tài),top則可以持續(xù)偵測(cè)進(jìn)程運(yùn)作的狀態(tài)!
top內(nèi)部參數(shù)
| M | 內(nèi)存百分比 |
| T | 累計(jì)占用cpu時(shí)間 |
| l | 開啟/關(guān)掉uptime信息 |
| t | 開啟/關(guān)閉task&cpu信息 |
| s | 調(diào)整刷新頻率 |
| k | 終止進(jìn)程 |
| u | 查看指定用戶進(jìn)程 |
| r | 給與某個(gè)pid重新制定一個(gè)nice值 |
| q | 離開top軟件的按鍵 |
top命令參數(shù)
| -b | 以批次方式顯示 |
| -n | 與-b搭配,顯示批次數(shù)量 |
| -p | 指定某些個(gè)PID來進(jìn)行觀察檢測(cè) |
top主要分為兩個(gè)部分,上半部分為整個(gè)系統(tǒng)的資源使用狀態(tài),下半部分是每個(gè)process使用的資源情況。
top顯示進(jìn)程信息詳解
| up | 開機(jī)到目前為止所經(jīng)過的時(shí)間 |
| user | 登陸當(dāng)前系統(tǒng)的用戶數(shù)量 |
| load average | 平均負(fù)載1分鐘,5分鐘,15分鐘的隊(duì)列長(zhǎng)度 |
| task | 顯示的是目前進(jìn)程的總量與個(gè)別進(jìn)程在什么狀態(tài) |
| %CPU | CPU占用百分比(顯示的是CPU的整體負(fù)載) |
| Mem | 物理內(nèi)存 |
| swap | 交換分區(qū)占用 |
| 空行 | 當(dāng)在top程序中輸入指令時(shí),顯示狀態(tài)的地方 |
%CPU內(nèi)部參數(shù)說明
| sy | 內(nèi)核空間 |
| ni | nice調(diào)整時(shí)間 |
| id | 空閑時(shí)間 |
| wa | 等待I/O(通常系統(tǒng)會(huì)變慢都是I/O產(chǎn)生的問題比較大) |
| hi | 處理硬件中斷 |
| si | 處理軟件中斷 |
| st | 被虛擬化程序占用的百分比 |
3.進(jìn)程優(yōu)先級(jí)
(1) 按照資源占用劃分進(jìn)程類型
| cpu使用密集 | CPU-Bound |
| I/O使用密集 | I/O-Bound |
對(duì)cpu使用密集的程序多分配cpu,但是一定要調(diào)高I/O使用密集的程序的優(yōu)先級(jí),I/O雖然使用的不多,但當(dāng)I/O出現(xiàn)時(shí)一定要讓它優(yōu)先使用cpu,否則輸入的內(nèi)容延遲會(huì)非常高
(2)優(yōu)先級(jí)范圍
對(duì)Linux而言優(yōu)先級(jí)被劃分成固定個(gè)數(shù)(0-139,140個(gè)優(yōu)先級(jí))
1-99為實(shí)時(shí)有優(yōu)先級(jí),數(shù)字越大優(yōu)先級(jí)越高,不用手動(dòng)處理系統(tǒng)自用(不能人為干預(yù))
100-139為靜態(tài)優(yōu)先級(jí),數(shù)字越小優(yōu)先級(jí)越高,這40個(gè)優(yōu)先級(jí)對(duì)應(yīng)安排成了一個(gè)nice值(-20—19)
一般情況下,我們所說的應(yīng)用程序的默認(rèn)優(yōu)先級(jí)都是120(0是nice值)
(3)調(diào)整進(jìn)程的優(yōu)先級(jí)
renice -n -10 3912 更改vim進(jìn)程優(yōu)先級(jí)為110(nice=-10)< 表示優(yōu)先級(jí)高于默認(rèn)優(yōu)先級(jí)
renice -n 10 3912 更改vim進(jìn)程優(yōu)先級(jí)為130(nice=10)N 表示優(yōu)先級(jí)低于默認(rèn)優(yōu)先級(jí)
(4)開啟進(jìn)程的同時(shí)指定進(jìn)程優(yōu)先級(jí)
nice -n 5 vim & 開啟vim進(jìn)程時(shí)指定它的優(yōu)先級(jí)為125(nice=5)
4.進(jìn)程前后臺(tái)調(diào)用
進(jìn)程前后臺(tái)調(diào)用相關(guān)命令
| jobs | 查看后臺(tái)任務(wù) |
| ctrl+z | 將前臺(tái)運(yùn)行進(jìn)程打入后臺(tái) |
| bg | 激活后臺(tái)進(jìn)程 |
| fg | 調(diào)回進(jìn)程 |
| & | 運(yùn)行在后臺(tái) |
(1)在workstation主機(jī)中執(zhí)行g(shù)edit(圖形的文本編輯器)命令,該進(jìn)程會(huì)占用終端
(2)ctrl+z直接將gedit前臺(tái)運(yùn)行進(jìn)程打入后臺(tái)
(3)執(zhí)行jobs命令查看被打入后臺(tái)的進(jìn)程
(4)fg job號(hào) 將被打入后臺(tái)的進(jìn)程調(diào)回到前臺(tái)
(5)bg job號(hào) 把后臺(tái)掛起(暫停)的進(jìn)程運(yùn)行起來,但是u不能把vim這個(gè)進(jìn)程運(yùn)行起來,因?yàn)関im這個(gè)工具必須占用終端,提供它的操作界面,才能夠正常運(yùn)行起來,所以用bg job號(hào)去運(yùn)行vim,它運(yùn)行完畢后,又讓vim掛起了,這樣的狀態(tài)就是我們所說的不可喚醒狀態(tài),因?yàn)樗恢痹诘却Y源,但是資源現(xiàn)在不讓它用,只能用fg job號(hào) 把vim調(diào)回前臺(tái)來,才能讓vin運(yùn)行起來
(6)vim & 表示讓vim進(jìn)程在后臺(tái)運(yùn)行,沒有占用你的終端
注意:
1.先打入后臺(tái)的優(yōu)先級(jí)低,后打入后臺(tái)的優(yōu)先級(jí)高
2.+表示正在運(yùn)行,-表示次優(yōu)先
3.如果沒有+(把一個(gè)進(jìn)程調(diào)回前臺(tái)),-就會(huì)被自動(dòng)變?yōu)?#43;(優(yōu)先級(jí)提高)
4.優(yōu)先處理和優(yōu)先調(diào)用不一樣
5.常用進(jìn)程信號(hào)
進(jìn)程和系統(tǒng)進(jìn)行溝通時(shí)用到的信號(hào)
man 7 signal 查看信號(hào)詳細(xì)信息
(1)常用信號(hào)等級(jí)
| 1 | 刷新(進(jìn)程重新加載配置,進(jìn)程號(hào)不變) |
| 2 | 中斷鍵盤輸入(刪除進(jìn)程在內(nèi)存中的數(shù)據(jù)) |
| 3 | 退出鼠標(biāo)捕捉(刪除鼠標(biāo)在內(nèi)存中的數(shù)據(jù)) |
| 9 | 強(qiáng)制結(jié)束(不會(huì)被阻塞) |
| 15 | 正常關(guān)閉進(jìn)程(可能會(huì)被阻塞) |
| 18 | 激活進(jìn)程(運(yùn)行暫停的進(jìn)程) |
| 19 | 強(qiáng)制暫停 (不會(huì)被阻塞) |
| 20 | 正常暫停(可能會(huì)被阻塞) |
1> kill -2 進(jìn)程號(hào) 效果和ctrl+c效果一樣,鍵盤終止,進(jìn)行下一次新的捕捉
2> kill -3 進(jìn)程號(hào) 退出鼠標(biāo)捕捉 可用==ctrl+/==快捷鍵操作
3> kill -9 進(jìn)程號(hào) 強(qiáng)制結(jié)束gedit進(jìn)程,不被阻塞
4> kill -15 進(jìn)程號(hào) 執(zhí)行完以后沒有效果,是因?yàn)樾盘?hào)15的關(guān)閉被系統(tǒng)阻塞掉了,當(dāng)系統(tǒng)接收到15這個(gè)信號(hào)的時(shí)候,它去處理這個(gè)任務(wù)時(shí),內(nèi)核會(huì)認(rèn)為這個(gè)程序不適合被關(guān)閉,所以它把這個(gè)執(zhí)行動(dòng)作就給阻塞掉了,但信號(hào)9是不會(huì)去考慮這個(gè)進(jìn)程是重要還是不重要的,這個(gè)關(guān)閉是不會(huì)被阻塞掉的。
5> kill -20 進(jìn)程號(hào) 和信號(hào)15同理
kill -20 2550 會(huì)發(fā)現(xiàn)暫停shell(命令行輸入字符)被阻塞
kill -20 3069 gedit進(jìn)程被暫停(不能編輯)
6> kill -18 3069 gedit進(jìn)程被激活(可以編輯)
7> kill -19 2550 暫停shell不會(huì)被阻塞,在命令行后邊輸入內(nèi)容時(shí)沒有反應(yīng)
kill -18 2550 剛才輸入的內(nèi)容系統(tǒng)是捕捉到的,只不過捕捉后的程序不響應(yīng),程序響應(yīng)后會(huì)立即發(fā)送給這個(gè)程序;I/O已經(jīng)捕捉到了,但是往程序加載時(shí)受阻塞了
(2)信號(hào)的控制命令
kill 信號(hào) pid
killall 信號(hào) 進(jìn)程名稱
pkill 參數(shù) target
kill表示的不是殺死,是發(fā)送信號(hào)的意思
1> 將三個(gè)vim進(jìn)程打入后臺(tái)
kill -9 2821 需要知道進(jìn)程號(hào)才能結(jié)束掉
2> killall -9 vim killall后面加的是進(jìn)程名稱時(shí),會(huì)把名稱叫這個(gè)指定字符的所有進(jìn)程全部結(jié)束掉,而kill處理的是單一進(jìn)程
3> pkill 參數(shù) target 按照一定條件對(duì)進(jìn)程結(jié)束
用student用戶身份開啟一個(gè)進(jìn)程,pkill -u 1000 進(jìn)程結(jié)束
6.系統(tǒng)守護(hù)進(jìn)程
(1)設(shè)定實(shí)驗(yàn)環(huán)境
1> 在workstation虛擬機(jī)進(jìn)行網(wǎng)絡(luò)配置設(shè)定:nm-connection-editor
網(wǎng)卡設(shè)備:enp1s0
鏈接名:westos(任意起)網(wǎng)絡(luò)選擇IPv4,靜態(tài)方式(manual)
172.25.254.165 前三位是ip的網(wǎng)段,最后一位是真實(shí)主機(jī)的ip,
24表示的是子網(wǎng)掩碼
2> 查看設(shè)定好的workstation虛擬機(jī)網(wǎng)絡(luò)配置:ip addr show enp1s0
3> 檢查網(wǎng)絡(luò)是否連通:查看真機(jī)ip,用真機(jī)ping一下虛擬機(jī),ping 172.25.254.165
能夠ping通,說明網(wǎng)絡(luò)配置成功
4> 遠(yuǎn)程連接:用真機(jī)連接虛擬機(jī)ssh -l root 172.25.254.165
(2)服務(wù)的理解
????現(xiàn)在所使用的虛擬機(jī)是可以讓真機(jī)通過網(wǎng)絡(luò)連接它的,是因?yàn)樵谶@臺(tái)主機(jī)(虛擬機(jī))里開啟了一個(gè)程序這個(gè)程序的名字是994(sshd)
這個(gè)程序是由很多個(gè)程序組成的程序簇,我們把它叫做服務(wù)
????本機(jī)開啟的服務(wù)軟件就是提供給我所提供服務(wù)的享有者使用的,安裝了服務(wù)性軟件的電腦叫做服務(wù)器(如sshd)像這種服務(wù)型軟件,它的控制是不能夠用kill、killall這種單獨(dú)的程序管理工具去進(jìn)行管理的,而用到的是systemctl命令
(3)系統(tǒng)守護(hù)進(jìn)程及systemctl命令
1> 守護(hù)進(jìn)程的定義
????守護(hù)進(jìn)程就是通常講的Daemon進(jìn)程,是linux后臺(tái)執(zhí)行的服務(wù)進(jìn)程,是獨(dú)立于控制終端、周期性地執(zhí)行某種任務(wù)或等待處理某些發(fā)生事件,不會(huì)隨終端關(guān)閉而停止,直到接受停止信息才會(huì)結(jié)束
2> 守護(hù)進(jìn)程類型
| Sysv init | 經(jīng)典的守護(hù)進(jìn)程類型延用到rhel6 |
| upstart | 做到并行啟動(dòng)rhel6中應(yīng)用 |
| systemd | 獨(dú)立完成啟動(dòng),rhel7中使用 |
3> systemctl命令用法
| systemctl list-unit-files | 查看服務(wù)開機(jī)運(yùn)行情況 |
| systemctl list-units | 查看服務(wù)當(dāng)前運(yùn)行情況 |
| systemctl list dependencies | 查看服務(wù)依賴性 |
| systemctl status service | 查看服務(wù)狀態(tài) |
| systemctl start service | 開啟服務(wù) |
| systemctl stop service | 關(guān)閉服務(wù) |
| systemctl reload service | 重新加載服務(wù)配置 |
| systemctl restart service | 重新啟動(dòng)服務(wù) |
| systemctl enable service | 設(shè)定服務(wù)開啟啟動(dòng) |
| systemctl enable –now service | 設(shè)定服務(wù)開機(jī)啟動(dòng)并開啟服務(wù) |
| systemctl disable service | 設(shè)定服務(wù)開機(jī)關(guān)閉 |
| systemctl set-default multi-user.target | 設(shè)定系統(tǒng)運(yùn)行級(jí)別為無圖形網(wǎng)絡(luò)模式 |
| systemctl set-default graphical.target | 設(shè)定系統(tǒng)運(yùn)行級(jí)別為圖形網(wǎng)絡(luò)模式 |
查看系統(tǒng)當(dāng)中所有服務(wù)當(dāng)前的運(yùn)行狀況:systemctl list-units --type=service
查看系統(tǒng)當(dāng)中的這些服務(wù)在開機(jī)的時(shí)候會(huì)不會(huì)自動(dòng)打開:systemctl list-unit-files --type=service
enabled表示這個(gè)服務(wù)在開機(jī)的時(shí)候會(huì)自動(dòng)打開
disabled表示這個(gè)服務(wù)在開機(jī)時(shí)不會(huì)自動(dòng)打開
static表示這個(gè)服務(wù)的狀態(tài)是不需要進(jìn)行管理的,是靜態(tài)的,就是當(dāng)它需要的時(shí)候會(huì)自動(dòng)打開,不需要的時(shí)候就不會(huì)打開,這樣的服務(wù)通常是其它一些服務(wù)的依賴性,會(huì)自動(dòng)地根據(jù)某些服務(wù)的需要而打開
查看sshd服務(wù)在工作時(shí)需要哪些服務(wù)的支持:systemctl list-dependencies sshd
當(dāng)打開sshd這個(gè)服務(wù)的時(shí)候,底下的這些所有進(jìn)程都會(huì)自動(dòng)開啟
列出sshd服務(wù)當(dāng)前的狀態(tài):systemctl status sshd
sshd這個(gè)服務(wù)是可用的,能被遠(yuǎn)程連接的,id是994,它現(xiàn)在的任務(wù)只有一個(gè),占用內(nèi)存2.2M,底下這些是它的日志,它的重大事件的一個(gè)記錄
關(guān)閉sshd服務(wù):systemctl stop sshd 不能被遠(yuǎn)程連接
開啟sshd服務(wù):systemctl start sshd 可以被遠(yuǎn)程連接
sshd服務(wù)的配置文件在/etc/ssh/sshd_config下,可以在配置文件里設(shè)定它的工作方式,在改了這個(gè)配置文件后是需要對(duì)這臺(tái)主機(jī)的服務(wù)進(jìn)行重啟或重新初始化的
重啟sshd服務(wù):systemctl restart sshd 進(jìn)程id會(huì)發(fā)生變化,原來是994現(xiàn)在變?yōu)?349
重新加載配置:systemctl reload sshd 進(jìn)程id不會(huì)發(fā)生變化,相當(dāng)于kill -1 刷新(重新加載)
設(shè)定sshd服務(wù)在開機(jī)時(shí)不會(huì)自動(dòng)開啟:systemctl disabled sshd 這個(gè)disabled命令不會(huì)影響這個(gè)服務(wù)的d當(dāng)前狀態(tài) ,服務(wù)當(dāng)前狀態(tài)的更改用systemctl stop sshd命令更改
設(shè)定服務(wù)開機(jī)啟動(dòng)并開啟服務(wù):systemctl enable --now sshd
設(shè)定系統(tǒng)開機(jī)時(shí)為無圖形網(wǎng)絡(luò)模式:systemctl set-default multi-user.target
設(shè)定不會(huì)影響當(dāng)前的圖形狀態(tài),需要reboot,可以用init 3命令關(guān)閉當(dāng)前的圖形狀態(tài),
在無圖形模式界面下,可以用 init 5 開啟圖形,但這只是臨時(shí)的
設(shè)定系統(tǒng)開機(jī)時(shí)為圖形網(wǎng)絡(luò)模式:systemctl set-default graphical.target
設(shè)定不會(huì)影響當(dāng)前的圖形狀態(tài),需要reboot,永久圖形模式
總結(jié)
以上是生活随笔為你收集整理的管理Linux系统中的进程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学物理复习-静电场
- 下一篇: Linux下使用GPG(GnuPG)加密