導航:首頁 > 編程系統 > linuxjvm進程監控工具

linuxjvm進程監控工具

發布時間:2023-10-27 22:39:11

linux下如何監聽進程

一、supervise

Supervise是daemontools的一個工具,可以用來監控管理下的應用程序運行情況,在應用程序出現異常時,supervise可以重新啟動指定程序。

使用:
mkdir test
cd test
vim run 寫入希望執行的操作
supervise test (注意這里是的參數是run文件上層的文件夾,改變run的為可執行 chmod +x run)

二、monit

monit是一個小型的開放源碼工具來管理和監控Unix系統。Monit可以自動維護進程,及時避免進程異常退出等產生的問題。

系統: monit可以監控問題的發生,包括進程狀態、系統cpu負載、內存佔用情況等,例如當apache服務的cpu負載以及內存閘弄情況過高時候,它會重啟apache服務。
進程: monit可以監控守護進程,包括系統進程。例如當某個進行down掉,它會自動恢復重啟該進程。
文件系統:Monit可以監控本地文件、目錄、文件系統的變化,包括時間戳、校驗值、大小的變化。例如,可以監控文件sha1以及md5的值,來監控文件是否發生變化。
網路:monit可以監控網路連接,支持TCP、UDP、Unix domain sockets以及HTTP、SMTP等。
定時腳本:monit可以用來定時測試程序和腳本,獲取程序輸出結果,進而判斷是否成功或其他情況。
安裝:

sudo apt-get install monit
編輯配置:
sudo vim /etc/monit/monitrc
啟動、停止、重啟:
sudo /etc/init.d/monit start
sudo /etc/init.d/monit stop
sudo /etc/init.d/monit restart
設置頁面監控狀態:
set httpd port 2812 and
allow 0.0.0.0/0.0.0.0
allow localhost
增加監控:
需要注意的是,這里需要添加start和stop,缺一個都是不行的

1.根據程序名稱來監控

check process test with MATCHING test.py
start program = "/home/yxd/test.py"
stop program = "xxxxx"
2.根據pid監控

check process apache with pidfile /var/run/httpd.pid
start program = "/etc/init.d/rcWebServer.sh start https"
stop program = "/etc/init.d/rcWebServer.sh stop https"
if changed pid then aler
參考:用monit監控系統關鍵進程
supervisord

Supervisor是一個C/S系統,它可以在類unix操作系統讓用戶來監視和控制後台服務進程的數量。它是由python編寫的,常用於進程異常退出的重啟保護。
安裝:

pip install supervisor
查看配置文件:

echo_supervisord_conf
從該命令的結果中,可以看到各個模塊的配置信息。
創建配置文件:

echo_supervisord_conf > /etc/supervisord.conf
配置應用:

[program:test]
command=python /root/test_supervisor.py
process_name=%(program_name)s
stdout_logfile=/root/test.log
stderr_logfile=/root/test.log
保存,啟動:

/usr/bin/supervisord -c /etc/supervisord.conf

❷ vmstat在linux中是什麼命令

vmstat是一個提供報告虛擬內存統計的工具,包括了系統內存、交換和實時處理器利用率。

命令詳解

【命令星級】 ★★★★☆

【功能說明】

vmstat是Virtual Memory
Statistics(虛擬內存統計)的縮寫,利用vmstat命令可以對操作系統的內存信息、進程狀態和CPU活動等進行監視。但是只能對系統的整體情況進行統計,無法對某個進程進行深入分析。

【語法格式】

vmstat [option] [delay [ count]]

vmstat [選項] [時間間隔[次數]]

說明:

1)在vmstat命令及後面的選項里,每個元素之間都至少有一個空格。

2)delay表示兩次輸出之間的間隔時間。

3)count表示按照delay指定的時間間隔統計的次數。

【選項說明】

表11-4針對該命令的參數選項進行了說明。



使用範例

範例11-12:顯示虛擬內存使用情況。

[root@oldboy ~]# vmstat #<==如果省略「間隔時間」和「次數」參數,則僅顯示一次報告後就退出

procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 0 71756 38600 279084 0 0 24 6 15 18 0 0 100 0 0

[root@oldboye ~]# vmstat 5 #<==表示每5秒鍾更新一次輸出信息,循環輸出,按Ctrl+C組合鍵停止輸出。

procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 0 71804 38600 279084 0 0 2 1 9 9 0 0 100 0 0

0 0 0 71756 38600 279084 0 0 0 0 8 8 0 0 100 0 0

0 0 0 71756 38600 279084 0 0 0 0 9 9 0 0 100 0 0

^C

[root@oldboye ~]# vmstat 5 6 #<==表示每5秒更新一次輸出信息,統計6次後停止輸出。

procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 0 71804 38600 279084 0 0 2 1 9 9 0 0 100 0 0

0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0

0 0 0 71756 38600 279084 0 0 0 0 8 9 0 0 100 0 0

0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0

0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0

0 0 0 71756 38600 279084 0 0 0 0 9 8 0 0 100 0 0

[root@oldboy ~]#

以下是命令結果說明。

第1列:procs。

q r列表示運行和等待CPU時間片的進程數。

q b列表示在等待資源的進程數。

第2列:memory。

q swpd列表示使用虛擬內存大小。

q free列表示當前空閑的物理內存數量。

q buff列表示buffers 的內存數量。

q cache列表示cache的內存數量。

第3列:swap。

q si(swap in)列表示由磁碟調入內存,也就是內存進入內存交換區的數量。

q so(swap out)列表示由內存調入磁碟,也就是內存交換區進入內存的數量。

第4列:I/O項顯示磁碟讀寫狀況。

q bi列表示從塊設備讀入數據的總量(即讀磁碟)(塊/s)。

q bo列表示寫入到塊設備的數據總量(即寫磁碟)(塊/s)。

第5列:system顯示採集間隔內發生的中斷數。

q in列表示在某一時間間隔中觀測到的每秒設備中斷數。

q cs列表示每秒產生的上下文切換次數。

第6列:CPU項顯示了CPU的使用狀態。

q us列顯示了用戶進程消耗的CPU時間百分比。

q sy列顯示了系統(內核)進程消耗的CPU時間百分比。

q id列顯示了CPU處在空閑狀態的時間百分比。

q wa列顯示了IO等待所佔用的CPU時間百分比。

q st列顯示了虛擬機佔用的CPU時間的百分比。

範例11-13:顯示活躍和非活躍內存。

[root@oldboy ~]# vmstat -a 2 5

procs -----------memory---------- ---swap-- -----io---- --system--
-----cpu-----

r b swpd free inact active si so bi bo in cs us sy id wa st

0 0 0 71804 160408 165848 0 0 2 1 9 9 0 0 100 0 0

0 0 0 71756 160408 165844 0 0 0 0 11 11 0 0 100 0 0

0 0 0 71756 160408 165844 0 0 0 0 12 9 0 0 100 0 0

0 0 0 71608 160412 165672 0 0 0 1302 218 341 12 9 80 0 0

0 0 0 71608 160412 165672 0 0 0 0 10 9 0 0 100 0 0

使用-a選項顯示活躍和非活躍內存時,所顯示的內容除增加了inact和active外,其他顯示內容與範例11-12相同。

在Memory列增加的inact和active兩列,說明如下。

q inact: 非活躍內存大小(當使用-a選項時顯示)。

q active: 活躍的內存大小(當使用-a選項時顯示)。

範例11-14:查看內存使用的詳細信息。

[root@oldboy ~]# vmstat -s

486640 total memory

414572 used memory

165656 active memory

160420 inactive memory

72068 free memory

……

這些信息的分別來自於/proc/meminfo,/proc/stat和/proc/vmstat。

範例11-15:查看磁碟的讀/寫。

[root@oldboy ~]# vmstat -d

disk- ------------reads------------ ------------writes-----------
-----IO------

total merged sectors ms total merged sectors ms cur sec

ram0 0 0 0 0 0 0 0 0 0 0

ram1 0 0 0 0 0 0 0 0 0 0

……

sr0 0 0 0 0 0 0 0 0 0 0

sda 14667 3623 594388 6737 12864 32806 365372 44250 0 30

這些信息主要來自於/proc/diskstats。其中的merged表示一次來自於合並的寫/讀請求,一般系統會把多個連接/鄰近的讀/寫請求合並到一起來操作。

範例11-16:查看/dev/sda1磁碟的讀寫統計信息。

[root@oldboy ~]# vmstat -p /dev/sda1

sda1 reads read sectors writes requested writes

502 4162 14 68

這些信息主要來自於/proc/diskstats。各列的說明如下。

q reads:來自於這個分區的讀的次數。

q read sectors:來自於這個分區的讀扇區的次數。

q writes:來自於這個分區的寫的次數。

q requested writes:來自於這個分區的寫請求次數。

摘自:跟老男孩學Linux運維:核心系統命令實戰 第11章 版權歸原作者所有

❸ 如何打開java jvm監控工具

請確抄保java_home/bin配置到path環境變數下,因為這些工具都在jdk的bin目錄下
圖形化工具 ctrl+R 命令行 輸入: jVisualVM 進入圖形化工具查看cpu 內存等等的消耗
jps(JVM Process Status Tool):JVM機進程狀況工具

用來查看基於HotSpot JVM裡面所有進程的具體狀態, 包括進程ID,進程啟動的路徑等等。與unix上的ps類似,用來顯示本地有許可權的java進程,可以查看本地運行著幾個java程序,並顯示他們的進程號。使用jps時,不需要傳遞進程號做為參數。
Jps也可以顯示遠程系統上的JAVA進程,這需要遠程服務上開啟了jstat服務,以及RMI注及服務,不過常用都是對本對的JAVA進程的查看。
命令格式:jps [ options ] [ hostid ]
常用參數說明:
-m 輸出傳遞給main方法的參數,如果是內嵌的JVM則輸出為null。
-l 輸出應用程序主類的完整包名,或者是應用程序JAR文件的完整路徑。
-v 輸出傳給JVM的參數。

❹ linux性能監控工具有哪些

1、頂部-Linux進程監控
Linux Top命令是性能監視程序,很多系統管理員經常用它監視Linux性能,可以再許多Linux/Unix操作系統下使用,可以顯示CPU使用情況、內存使用情況、交換內存、緩存大小、緩沖區大小、進程PID、用戶、 命令等等,它還顯示高內存和CPU運行流程的利用。
2、VmStat-虛擬內存統計
Linux VmStat命令用於顯示虛擬內存,kernerl線程,磁碟,系統進程,I/O塊,中斷,CPU活動等的統計信息。默認情況下,vmstat命令在Linux系統下不可用,您需要安裝名為sysstat的軟體包 ,其中包含vmstat程序。
3、Lsof-列出打開的文件
許多Linux/Unix系統中使用的Lsof命令,用於顯示所有打開文件和進程的列表。包含的開放文件是磁碟文件、網路套接字、管道、設備和進程。使用此命令的主要原因之一是無法卸載磁碟並顯示正在使用或打開文件的錯誤。使用此命令,您可以輕松識別哪些文件正在使用中。
4、Tcpmp-網路分組分析器
Tcpmp是使用最廣泛的命令行、網路數據包分析器或數據包嗅探器程序之一,用於捕獲或過濾通過網路在特定介面上接收或傳輸的TCP/ IP數據包。它還提供了一個選項,可以將捕獲的包保存在文件中供以後分析。tcpmp幾乎可用於所有主要的Linux發行版。
5、Netstat-網路統計
Netstat是一個命令行工具,用於監視傳入和傳出網路數據包統計信息以及介面統計信息,對於每個系統管理員來說,監視網路性能並排除網路相關問題是非常有用的工具。
6、Htop-Linux進程監控
Htop是一款非常先進的互動式和實時Linux過程監控工具。這與Linux top命令非常相似,但它具有一些豐富的功能,如用戶友好的界面來管理進程、快捷鍵、進程的垂直和水平視圖等等。

❺ 如何jvm監控linux伺服器

如何配置visualvm監控
visualvm支持在Linux和windows上啟用圖形界面監控jvm的資源,但是如何可以使我們在windows上監控到遠程linux伺服器資源,這還需要做一些配置,此文是在原文基礎上做了更改的,希望對大家能有所幫助。
(1)首先要修改JDK中JMX服務的配置文件,以獲得相應的許可權:
進入$JAVA_HOME所在的根目錄的/jre/lib/management子目錄下,
a. 將jmxremote.password.template文件復制為jmxremote.password
b. 調整jmxremote.access和jmxremote.password的許可權為只讀寫,可以使用如下命令
chmod 600 jmxremote.access jmxremote.password
c. 打開jmxremote.password文件,去掉
# monitorRole QED
# controlRole R&D
這兩行前面的注釋符號
(2)修改env.sh
打開env.sh文件,並在JVM的啟動配置中添加如下信息:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.20.150.218 其他配置」
這幾個配置的說明如下:
-Dcom.sun.management.jmxremote.port:這個是配置遠程connection的埠號的,要確定這個埠沒有被佔用
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false:這兩個是固定配置,是JMX的遠程服務許可權的
-Djava.rmi.server.hostname:這個是配置server的IP的,要使用server的IP最好在機器上先用hostname –i看一下IP是不是機器本身的IP,如果是127.0.0.1的話要改一下,否則遠程的時候連不上,目前我們的server上我已經都改好了
(3)Windows客戶端配置
JDK 1.6版本自帶visualvm,只需要進到bin目錄下啟動即可
啟動後頁面比較簡潔,配置也很簡單:
a. 點擊左側菜單的add Remote host,輸入server的IP,然後再advanced settings里配置埠(注意這個埠要和server上的埠一致)
b. 右擊剛才配置的IP,選擇JMX connection方式,再次輸入埠,就可以監視到JVM資源了

❻ 我想監視linux系統的內存使用情況,在linux下有哪些視圖或者命令行工具可用

這方面的指令太多了,大體上整理一下12個吧。

1. /proc/meminfo
查看RAM使用情況最簡單的方法是通過 /proc/meminfo。這個動態更新的虛擬文件實際上是許多其他內存相關工具(如:free / ps / top)等的組合顯示。/proc/meminfo列出了所有你想了解的內存的使用情況。進程的內存使用信息也可以通過 /proc/<pid>/statm 和 /proc/<pid>/status 來查看。

2. atop
atop命令是一個終端環境的監控命令。它顯示的是各種系統資源(CPU, memory, network, I/O, kernel)的綜合,並且在高負載的情況下進行了彩色標注。

3、 free
free命令是一個快速查看內存使用情況的方法,它是對 /proc/meminfo 收集到的信息的一個概述。

4. GNOME System Monitor
GNOME System Monitor 是一個顯示最近一段時間內的CPU、內存、交換區及網路的使用情況的視圖工具。它還提供了一種查看CPU及內存使用情況的方法。

$ gnome-system-monitor

5. htop
htop命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小、程序總內存大小、共享庫大小等的報告。列表可以水平及垂直滾動。

6. KDE System Monitor
功能同 4 中介紹的GENOME版本。

$ ksysguard

7. memstat
memstat是一個有效識別 executable(s), process(es) and shared libraries使用虛擬內存情況的命令。給定一個進程ID,memstat可以列出這個進程相關的可執行文件、數據和共享庫。

8. nmon
nmon是一個基於ncurses的系統基準測試工具,它可以監控CPU、內存、I/O、文件系統及網路資源等的互動模式。對於內存的使用,它可以實時的顯示 總/剩餘內存、交換空間等信息。

9. ps
ps命令可以實時的顯示各個進程的內存使用情況。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 「–sort」選項對進程進行排序,例如按RSS進行排序:

$ ps aux --sort -rss

10. smem
smem命令允許你統計基於/proc信息的不同進程和用戶的內存使用情況。內存使用情況的分析可以導出圖表(如條形圖和餅圖)。

$ sudo smem --pie name -c "pss"

11. top
top命令提供了實時的運行中的程序的資源使用統計。你可以根據內存的使用和大小來進行排序。
$ top

12. vmstat
vmstat命令顯示實時的和平均的統計,覆蓋CPU、內存、I/O等內容。例如內存情況,不僅顯示物理內存,也統計虛擬內存。

$ vmstat -s

❼ JVM常用調試工具介紹

一、Linux ps (英文全拼:process status)命令用於顯示當前進程的狀態

ps aux 基本輸出

ps aux 列名解釋

註:優化機器資源主要從佔用機器cpu和mem高的程序入手

二、Linux top命令查看正在運行的進程和系統負載信息,包括cpu負載、內存使用、各個進程所佔系統資源等

基本輸出

欄位解釋

三、Linux top -H -p pid。查看某個進程內部線程佔用情況

四、jps(Java Virtual Machine Process Status Tool) 是java提供的一個顯示當前所有java進程pid的命令

五、jinfo LVMID。可以用來查看 Java 進程運行的 JVM 參數

六、jstat(Java Virtual Machine statistics monitoring tool)主要利用JVM內建的指令對Java應用程序的資源和性能進行實時的命令行的監控,包括了對Heap size和垃圾回收狀況的監控。可見,Jstat是輕量級的、專門針對JVM的工具,非常適用

七、jstack(Java Stack Trace Tool)主要用於生成java虛擬機當前時刻的線程快照。線程快照是當前java虛擬機內每一條線程正在執行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現長時間停頓的原因,如線程間死鎖、死循環、請求外部資源導致的長時間等待等。 線程出現停頓的時候通過jstack來查看各個線程的調用堆棧,就可以知道沒有響應的線程到底在後台做什麼事情,或者等待什麼資源

八、jmap命令(Java Memory Map)是其中之一。主要用於列印指定Java進程(或核心文件、遠程調試伺服器)的共享對象內存映射或堆內存細節

九、MAT(Memory Analysis Tools)是一個分析 Java堆數據的專業工具,用它可以定位內存泄漏的原因

此次分享准備過程中,發現JDK調試工具在Root用戶下訪問Yarn用戶啟動的Java虛擬機,獲取不到信息,jstatck獲取到的還不全(沒有線程描述信息行)
可以使用 sudo -u yarn /usr/java/jdk1.8.0_181-cloudera/bin/jstack 這種方式獲取。

❽ 有沒有類似supervisor的linux進程監控軟體

Supervisor是一個C/S系統,它允許用戶在類UNIX系統上控制一些進程。它具有以下特性:
1 簡單
Supervisor通過INI格式配置文件進行配置,很容易掌握,它為每個進程提供了很多配置選項,可以使你很容易的重啟進程或者自動的輪轉日誌。
2 統一
Supervisor提供了一種統一的方式來start、stop、monitor你的進程, 進程可以單獨控制,也可以成組的控制。你可以在本地或者遠程命令行或者web介面來配置Supervisor。
3 有效
Supervisor通過fork/exec啟動它的子進程,子進程並不是守護進程。當一個進程終止的時候,操作系統會立即給Supervisor發送一個信號,而不是像其他解決方案依賴PID文件。
4 可擴展
Supervisor包含一個簡單的事件通知協議,因此任何程序都可以監控它,而且提供一個XML-RPC控制介面。
5 兼容
除了windows平台,其他平台都可運行。
Supervisor系統的組件:
supervisord:
服務會啟動supervisord服務,它負責調用自己啟動子程序,響應來自客戶端的命令,重啟crash或者退出的進程,記錄進程的輸出信息,收集事件信息。該服務的配置文件在/etc/supervisor/supervisord.conf
supervisorctl:
客戶端的命令行工具,提供一個類shell介面,通過它你可以連接到不同的supervisord進程上來管理它們各自的子程序。客戶端命令通過UNIX socket或者TCP來和服務通訊,服務端可以要求客戶端提供身份驗證之後才能進行操作([supervisorctl])。
Web Server:
一個小的web介面被集成進了supervisorctl,重啟supervisord之後就可以訪問了([inet_http_server])。
XML-RPC Interface:
就像HTTP提供WEB UI一樣,同時還提供了XML-RPC介面來控制supervisor和由它運行的程序。
安裝:
supervisor是python編寫的,顯然用easy_install、pip都可以安裝,我懶,直接apt-get了,在ubuntu14.04下安裝完後版本是3.0b2。
Supervisor服務的啟動
其實啟動Supervisor很簡單,supervisord -h看看就知道了,最簡單的-c根配置文件即可:

復制代碼
代碼如下:

supervisord -- run a set of applications as daemons.

Usage: /usr/bin/supervisord [options]

Options:
-c/--configuration FILENAME -- configuration file
-n/--nodaemon -- run in the foreground (same as 'nodaemon true' in config file)
-h/--help -- print this usage message and exit
-v/--version -- print supervisord version number and exit
-u/--user USER -- run supervisord as this user (or numeric uid)
-m/--umask UMASK -- use this umask for daemon subprocess (default is 022)
-d/--directory DIRECTORY -- directory to chdir to when daemonized
-l/--logfile FILENAME -- use FILENAME as logfile path
-y/--logfile_maxbytes BYTES -- use BYTES to limit the max size of logfile
-z/--logfile_backups NUM -- number of backups to keep when max bytes reached
-e/--loglevel LEVEL -- use LEVEL as log level (debug,info,warn,error,critical)
-j/--pidfile FILENAME -- write a pid file for the daemon process to FILENAME
-i/--identifier STR -- identifier used for this instance of supervisord
-q/--childlogdir DIRECTORY -- the log directory for child process logs
-k/--nocleanup -- prevent the process from performing cleanup (removal of
old automatic child log files) at startup.
-a/--minfds NUM -- the minimum number of file descriptors for start success
-t/--strip_ansi -- strip ansi escape codes from process output
--minprocs NUM -- the minimum number of processes available for start success
--profile_options OPTIONS -- run supervisord under profiler and output
results based on OPTIONS, which is a comma-sep'd
list of 'cumulative', 'calls', and/or 'callers',
e.g. 'cumulative,callers')
不過既然我這懶人是用apt-get安裝的,那安裝包的規范必然符合debian系的風格了,直接service supervisor start即可啟動,且慢,我們還沒配置supervisor的配置文件呢,啟動了也沒什麼效果。我們後面詳解配置文件的配置。

supervisorctl客戶端的使用
supervisorctl有兩種模式,一種是交互模式,一種是命令行模式。在命令行輸入supervisorctl直接回車,即可進入交互模式。

復制代碼
代碼如下:

supervisorctl -- control applications run by supervisord from the cmd line.

Usage: /usr/bin/supervisorctl [options] [action [arguments]]

Options:
-c/--configuration -- configuration file path (default /etc/supervisor.conf)
-h/--help -- print usage message and exit
-i/--interactive -- start an interactive shell after executing commands
-s/--serverurl URL -- URL on which supervisord server is listening
(default "http://localhost:9001").
-u/--username -- username to use for authentication with server
-p/--password -- password to use for authentication with server
-r/--history-file -- keep a readline history (if readline is available)

復制代碼
代碼如下:

action [arguments] -- see below

Actions are commands like "tail" or "stop". If -i is specified or no action is
specified on the command line, a "shell" interpreting actions typed
interactively is started. Use the action "help" to find out about available
actions.
Supervisor的開機自啟動

如果你是pip或者easy_install安裝的,開機服務自啟動還真是個麻煩事,不過官方已經給出一些rc.d腳本示例了,在github上,不過由於我是apt-get安裝的,顯然這個開機自啟動是不用擔心的,用debian的update-rc.d即可搞定。
Supervisor的進程安全
既然是用Supervisor來保證其他進程的正常運行,但是萬一Supervisor進程掛了怎麼辦,我們可以使用daemontools來保證Supervisor正常運行,就類似於監控的監控。
supervisord的配置文件主要由幾個配置段構成,配置項以K/V格式呈現,下面就看看各個配置端需要怎樣配置:
[unix_http_server]
在該配置塊的參數項表示的是一個監聽在socket上的HTTP server,如果[unix_http_server]塊不在配置文件中,則不會啟動基於socket的HTTP server。
file:一個unix domain socket的文件路徑,HTTP/XML-RPC會監聽在這上面
chmod:在啟動時修改unix domain socket的mode
chown:修改socket文件的屬主
username:HTTP server在認證時的用戶名
password:認證密碼<span style="font-family:'Microsoft YaHei';font-size:16px;line-height:1.5;"></span>
eg:

復制代碼
代碼如下:

[unix_http_server]
file = /tmp/supervisor.sock
chmod = 0777
chown= nobody:nogroup
username = user
password = 123
[inet_http_server]

在該配置塊的參數項表示的是一個監聽在TCP上的HTTP server,如果[inet_http_server]塊不在配置文件中,則不會啟動基於TCP的HTTP server。

port:TCP監聽的地址和埠(ip:port),這個地址會被HTTP/XML-RPC監聽
username:HTTP server在認證時的用戶名
password:認證密碼
eg:

復制代碼
代碼如下:

[inet_http_server]
port = 127.0.0.1:9001
username = user
password = 123
[supervisord]

該配置塊的參數項是關於supervisord進程的全局配置項。
logfile:log文件路徑
logfile_maxbytes:log文件達到多少後自動進行輪轉,單位是KB、MB、GB。如果設置為0則表示不限制日誌文件大小
logfile_backups:輪轉日誌備份的數量,默認是10,如果設置為0,則不備份
loglevel:error、warn、info、debug、trace、blather、critical
pidfile:pid文件路徑
umask:umask值,默認022
nodaemon:如果設置為true,則supervisord在前台啟動,而不是以守護進程啟動
minfds:supervisord在成功啟動前可用的最小文件描述符數量,默認1024
minprocs:supervisord在成功啟動前可用的最小進程描述符數量,默認200
nocleanup:防止supervisord在啟動的時候清除已經存在的子進程日誌文件
childlogdir:自動啟動的子進程的日誌目錄
user:supervisord的運行用戶
directory:supervisord以守護進程運行的時候切換到這個目錄
strip_ansi:消除子進程日誌文件中的轉義序列
environment:一個k/v對的list列表
eg:

復制代碼
代碼如下:

[supervisord]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = info
pidfile = /tmp/supervisord.pid
nodaemon = false
minfds = 1024
minprocs = 200
umask = 022
user = chrism
identifier = supervisor
directory = /tmp
nocleanup = true
childlogdir = /tmp
strip_ansi = false
environment = KEY1="value1",KEY2="value2"
[supervisorctl]

該配置塊參數是關於supervisorctl

serverurl:這個url是用來訪問supervisord服務的(http://localhost:9001),或者是個sockets文件(unix:///absolute/path/to/file.sock)
username:supervisorctl連接supervisord的認證用戶
password:認證密碼
prompt:默認是supervisor
history_file:history文件路徑
eg:

復制代碼
代碼如下:

[supervisorctl]
serverurl = unix:///tmp/supervisor.sock
username = chris
password = 123
prompt = mysupervisor
[program:x]

該配置塊包含一個或者多個program段,program來表明supervisord要控制哪些程序。該配置塊的頭部是有固定格式的,一個關鍵字program,後面跟著一個冒號,接下來才是程序名。例如:[program:foo],foo就是程序名,在使用supervisorctl來操作程序的時候,就是以foo來標明的。

command:啟動程序使用的命令,可以是絕對路徑或者相對路徑
process_name:一個python字元串表達式,用來表示supervisor進程啟動的這個的名稱,默認值是%(program_name)s
numprocs:Supervisor啟動這個程序的多個實例,如果numprocs>1,則process_name的表達式必須包含%(process_num)s,默認是1
numprocs_start:一個int偏移值,當啟動實例的時候用來計算numprocs的值
priority:權重,可以控製程序啟動和關閉時的順序,權重越低:越早啟動,越晚關閉。默認值是999
autostart:如果設置為true,當supervisord啟動的時候,進程會自動重啟。
autorestart:值可以是false、true、unexpected。false:進程不會自動重啟,unexpected:當程序退出時的退出碼不是exitcodes中定義的時,進程會重啟,true:進程會無條件重啟當退出的時候。
startsecs:程序啟動後等待多長時間後才認為程序啟動成功
startretries:supervisord嘗試啟動一個程序時嘗試的次數。默認是3
exitcodes:一個預期的退出返回碼,默認是0,2。
stopsignal:當收到stop請求的時候,發送信號給程序,默認是TERM信號,也可以是 HUP, INT, QUIT, KILL, USR1, or USR2。
stopwaitsecs:在操作系統給supervisord發送SIGCHILD信號時等待的時間
stopasgroup:如果設置為true,則會使supervisor發送停止信號到整個進程組
killasgroup:如果設置為true,則在給程序發送SIGKILL信號的時候,會發送到整個進程組,它的子進程也會受到影響。
user:如果supervisord以root運行,則會使用這個設置用戶啟動子程序
redirect_stderr:如果設置為true,進程則會把標准錯誤輸出到supervisord後台的標准輸出文件描述符。
stdout_logfile:把進程的標准輸出寫入文件中,如果stdout_logfile沒有設置或者設置為AUTO,則supervisor會自動選擇一個文件位置。
stdout_logfile_maxbytes:標准輸出log文件達到多少後自動進行輪轉,單位是KB、MB、GB。如果設置為0則表示不限制日誌文件大小
stdout_logfile_backups:標准輸出日誌輪轉備份的數量,默認是10,如果設置為0,則不備份
stdout_capture_maxbytes:當進程處於stderr capture mode模式的時候,寫入FIFO隊列的最大bytes值,單位可以是KB、MB、GB
stdout_events_enabled:如果設置為true,當進程在寫它的stderr到文件描述符的時候,PROCESS_LOG_STDERR事件會被觸發
stderr_logfile:把進程的錯誤日誌輸出一個文件中,除非redirect_stderr參數被設置為true
stderr_logfile_maxbytes:錯誤log文件達到多少後自動進行輪轉,單位是KB、MB、GB。如果設置為0則表示不限制日誌文件大小
stderr_logfile_backups:錯誤日誌輪轉備份的數量,默認是10,如果設置為0,則不備份
stderr_capture_maxbytes:當進程處於stderr capture mode模式的時候,寫入FIFO隊列的最大bytes值,單位可以是KB、MB、GB
stderr_events_enabled:如果設置為true,當進程在寫它的stderr到文件描述符的時候,PROCESS_LOG_STDERR事件會被觸發
environment:一個k/v對的list列表
directory:supervisord在生成子進程的時候會切換到該目錄
umask:設置進程的umask
serverurl:是否允許子進程和內部的HTTP服務通訊,如果設置為AUTO,supervisor會自動的構造一個url

閱讀全文

與linuxjvm進程監控工具相關的資料

熱點內容
win10ime 瀏覽:271
手機號大數據保護停機是什麼意思 瀏覽:81
兩個蘋果手機怎麼隔空投送app 瀏覽:903
ps修改有褶皺的文件 瀏覽:417
javadbfreader 瀏覽:307
蘋果手機數字代碼是什麼 瀏覽:66
驅動程序順序安裝腳本 瀏覽:665
word文件里怎樣查重 瀏覽:219
mx5系統基帶版本 瀏覽:184
ntlea全域通win10 瀏覽:171
qq怎麼查看別人的收藏 瀏覽:135
地震三參數matlab程序 瀏覽:57
怎樣給優盤文件加密軟體 瀏覽:7
收拾文件有哪些小妙招 瀏覽:431
pdf文件去底網 瀏覽:253
win10重裝系統需要格式化c盤嗎 瀏覽:424
路由器trx文件 瀏覽:655
淘寶店鋪數據包怎麼做 瀏覽:195
win10鍵盤黏連 瀏覽:332
json如何生成表格 瀏覽:323

友情鏈接