日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

9.管好进程和服务

發布時間:2023/12/2 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 9.管好进程和服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.查看進程

1.進程分類
進程一般分為交互進程、批處理進程和守護進程三類。上述三種進程各有各
的作用,使用場合也有所不同。
? 交互進程:由一個 shell 啟動的進程。交互進程既可以在前臺運行,也可以在后臺運行。
? 批處理進程:這種進程和終端沒有聯系,是一個進程序列。
? 守護進程:Linux 系統啟動時啟動的進程,并在后臺運行(守護進程一般是由系統在開機時通過一個叫做 init 的腳本自動激活啟動或超級管理用戶 root 來啟動)

2.進程的 描述符
進程描述符(Process Descriptor),顧名思義,就是進程的描述,即用來描述進程的數據結構,可以理解為進程的屬性。比如進程的狀態、進程的標識(PID)

USER? 啟動進程用戶
PID? 進程標志號
PPID? 父進程的 ID,父子進程的關系是管理和被管理的關系,當父進程終止時,子進程也隨之而終止。但子進程終止,父進程并不一定終止。
%CPU? 運行該進程占用 CPU 的時間與該進程總的運行時間的比例
%MEM? 該進程占用內存和總內存的比例
VSZ? 占用的虛擬內存大小
RSS? 進程占用的物理內存值
TTY? 進程建立時所對應的終端,“?”表示該進程不占用終端
STAT? 進程的狀態, 狀態分為

  D,不可中斷的睡眠;
  R,就緒(在可運行隊列中);
  S,睡眠;
  T,被跟蹤或停止;
  Z,終止(僵死)的進程
  W,沒有足夠的內存分頁可分配;
    < 高優先序的進程;
    N,低優先序的進程;
    L,有內存分頁分配并鎖在內存體內(實時系統或 I/O)。
    + 位于后臺的進程
    s 進程的領導者(在它之下有子進程);

START? 為進程開始時間
TIME? 為執行的時間
COMMAND 是對應的命令名

3.ps [選項]
查看系統中進程的狀態
? l 長格式輸出;
? u 按用戶名和啟動時間的順序來顯示進程;
? j 用任務格式來顯示進程;
? f 用樹形格式來顯示進程;
? a/-A 顯示所有用戶的所有進程(包括其它用戶);
? x 顯示無控制終端的進程;
? r 顯示運行中的進程;
? --sort [+|-] 字段名 按指定字段對 ps 輸出進行排序,+表示升序,-表示降序, “+”字符是可選的,因為默認按升序排列

ps 命令經常與 grep 命令一起使用來查找特定的進程

4.top 是動態監視系統進程的工具,在默認情況下,top 命令每3 秒鐘刷新一次

top [選項]
動態查看系統中進程的狀態
? -d:指定更新的間隔,以秒為單位。
? -q:沒有任何延遲的更新。如果使用者有超級用戶,則 top 命令將會以最高的優先序執行

??? -c:顯示進程完整的路徑與名稱。
還可以使用快捷鍵與 top 命令進行交互,常用的快捷鍵包括:
? space 立即更新
? >? 向下翻頁,向左一個關鍵字排序
? <? 向上翻頁
? T? 按進程運行時間進行排序,降序
? M 按內存占用情況排序,降序
? N 以進程 ID 排序,降序
? P? 按 CPU 占用情況排序,降序(默認)
? R 反向排序
? k 結束指定進程

??? q退出

2.操縱進程

1.kill [-signal] pid
kill 命令終止一個進程。

???? pid:進程的 PID 號
? -signal:表示向進程發出的信號,如果沒有指定任何信號,默認發送的信號為 SIGTERM(-15),可將指定進程終止。若仍無法終止該進程,可使用更強力的 SIGKILL(-9)信號嘗試強制終止進程

??? kill -l? 列出能發送的所有信號

2.kill 命令的工作原理是,向 Linux 系統的內核發送一個系統操作信號和某個程序的進程標志號,然后系統內核就可以對進程標志號指定的進程進行操作。
當需要終止一個前臺進程的時候,通常使用 ctrl+c 組合鍵;但是對于一個后臺進程就必須使用 kill 命令。
另外應用的場合就是在服務器管理中,對于服務器主進程,最好是按其正常的程序關閉,而不是用 kill 這樣危險的動作。

3.pkill有選擇性的向一個或一批進程發出信號,可根據進程名稱,擁有者(-u)

xkill圖形界面的kill,鼠標變成十字,點擊要關閉的進程

3.查看和操控系統服務

1.Linux 下的守護進程按照服務類型可以分為兩類:

一類是系統守護進程,為系統提供某種重要的功能,如 atd、cron、lpd、syslogd、login 等。

另一類是網絡守護進程,向用戶提供某種網絡服務,如 sshd、httpd、sendmail、xinetd 等

2.按照工作模式也可以分為兩類:
(1)獨立守護進程(stand-alone daemon)所謂獨立守護進程,就是該守護進程可以獨立運行,守護進程常駐內存,響應快,無服務啟動時間。所有獨立運行守護進程的腳本在/etc/rc.d/init.d/目錄下,由 init 腳本負責管理。
(2)超級守護進程(super daemon)RHEL 使用的超級守護進程叫做 xinted(eXtended InterNET Daemon)。xinted 是一個非常特殊的守護進程,xinetd 能夠同時監聽多個指定的端口,在接受用戶請求時,他能夠根據用戶請求的端口不同,再來啟動不同的網絡服務進程來處理這些用戶請求。可以把 xinetd 看做一個管理守護進程的守護進程,它
決定把一個客戶請求交給那個程序處理,然后啟動相應的守護進程。

3.netstat 命令是一個監控本機網絡端口狀態的非常有用的工具

netstat [選項] [參數]
輸出網絡連接, 路由表, 接口統計數據, 偽連接,及多播成員相關信息
? -r? 顯示路由表
? -I? 顯示網絡接口的連接情況(可以加上 eth0、lo 等參數)
? -s 顯示 IP、ICMP、IcmpMsg、TCP、UDP、UdpLite、TcpExt、IpExt的統計信息
? -n 以數字形式顯示地址和端口號
? -p 顯示 PID/Program name
? -l? 顯示監聽端口
? -a 顯示所有連接和監聽端口
? -t? 顯示 TCP 傳輸協議的連線狀況
? -u 顯示 UDP 傳輸協議的連線狀況
? -e 顯示關于以太網的統計數據。它列出的項目包括傳送的數據報的總字節數、錯誤數、刪除數、數據報的數量和廣播的數量。這些統計數據既有發送的數據報數量,也有接收的數據報數量。這個選項可以用來統計一些基本的網絡流量)。

輸 出 主 要 分 為 兩 部 分 :

第 一 部 分 是 活 動 網 絡 連 接 (Active Internetconnections),顯示的都是 TCP/IP 網絡連接,默認有 5 個字段:

Proto? 連接使用的協議,主要就是 TCP 和 UDP 兩種。
Recv-Q? 尚未接收的字節數。
Send-Q? 尚未發送到目標的字節數。
Local Address本地或源的地址和端口,可以是 “主機 IP:端口號”(使用-n 選項時), 也可以是“完整的主機名:端口名稱”。其中如果 IP 地址為“0.0.0.0”或者主機名為“*”就表示在所有鏈接的相應端口,如“00.0.0.0:22”就表示在本機所有鏈接的 22 端口上都進行監聽。
Foreign Address? 目標地址和端口。
State? 當前 socket 連接的狀態
?? ESTABLISHED - 連接已建立;
?? SYN_SENT:正在嘗試建立連接 (發出 SYN標志) ;
?? SYN_RECV:接收到一個連接建立請求
?? FIN_WAIT1: socket 關閉,連接中斷中;
?? FIN_WAIT2:連接已中斷,但 socket 正在等待對方回應;
?? TIME_WAIT:連接已中斷,socket 仍在等待,以處理仍然存在在網絡中的包;
?? LISTEN - 已建立監聽,socket 正在監聽端口輸入,但尚未建立連接。

第二部分是活動 Unix 域套接字(Active UNIX domain sockets),顯示的都是本地進程間通信的套接字

4.Linux 系統下共定義了 65536 個可用端口 ,這些端口又分為兩部分,
分別是:
(A)只有 root 用戶才能啟用的 port,0—1023 端口,需要用 root 身份才能啟用,這些端口主要用于系統的常見(well known)通信服務(如 http 服務使用 80 端口,ftp 服務使用 21 端口等等);
(B)1024—65535 是給客戶端軟件使用的,客戶端 port 不受 root用戶限制,例如 mysql 端口為 3306,可以由 mysql 用戶啟用;例如Oracle 端口為 1521,可以由 Oracle 用戶啟用;又例如用網絡瀏覽器瀏覽網頁。瀏覽器需先從本地啟用一個大于或等于1024的隨機端口,然后去連接 web 服務端的 80 端口

5.service [服務腳本名] [動作命令]
service 命令用于對系統服務進行操縱,比如啟動(start)、停止(stop)、重啟(restart)、查看狀態(status)等,service 命令本身是一個 shell 腳本,它在/etc/init.d/目錄查找指定的服務腳本,然后調用該服務腳本來完成任務,sevice
? service 服務腳本名 打印指定服務的命令行使用幫助。
? service 服務腳本名 start? 啟動指定的系統服務
? service 服務腳本名 status 查看指定的系統服務狀態
? service 服務腳本名 stop? 停止指定的系統服務
? service 服務腳本名 restart 重新啟動指定的系統服務,即先停止然后再啟動。

6.設置防火墻端口

打開防火墻的配置文件/etc/sysconfig/iptables,在其中添加上如下所示一行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

7.chkconfig --list” 命令顯示系統服務列表,以及這些服務在運行級別 0 到 6 中已被啟動(on)還是停止(off)

運行級別(runlevel)就是 Linux 當前正在運行的功能級別。這些級別定義在/ect/inittab 文件中。一般來說 Linux 都會提供從 0 到 6 共七個運行級別,其中 3 個是基本運行級別,3 個是其他運行級別,1 個保留

0? 關閉(或停止)系統
1? 單用戶模式;通常別稱為 s 或 S

2? 沒有聯網的多用戶模式
3? 聯網的多用戶模式
4? 保留暫未使用
5? 聯網并且使用圖形界面的多用戶模式
6? 重啟系統

在不同運行級別下可以定義啟動不同的系統服務
?可以使用 runlevel 命令來查看當前運行級別,也可以用 init N(N 為0-6 之間的數字)來切換運行級別

chkconfig --level? num(運行級別)? 服務名 on: 啟動服務

?

轉載于:https://www.cnblogs.com/Wang-Y/p/8459875.html

總結

以上是生活随笔為你收集整理的9.管好进程和服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。