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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

supervisor监控php进程程序,详解Supervisor进程守护监控(转)

發布時間:2024/9/27 php 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 supervisor监控php进程程序,详解Supervisor进程守护监控(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Supervisor的配置

2.0 創建目錄,初始化配置文件

mkdir /usr/supervisor

echo_supervisord_conf > /usr/supervisor/supervisord.conf

1

2

mkdir/usr/supervisor

echo_supervisord_conf>/usr/supervisor/supervisord.conf

echo_supervisord_conf詳解:

echo_supervisord_conf詳解

[root@centos-011 ~ 07:50:00]#cat /etc/supervisord.conf.bak

; Sample supervisor config file.

[unix_http_server]

file=/var/run/supervisor/supervisor.sock ; socket 路徑

;chmod=0700 ; socket 文件的權限

;chown=nobody:nogroup ; socket 所屬用戶及組

;username=user ; 用戶名

;password=123 ; 密碼

;[inet_http_server] ; 是否啟用服務,默認是關閉的(啟用的話可以看到supervisor 管理的服務狀態)

;port=127.0.0.1:9001 ; 監聽的IP及端口

;username=user ; 用戶名

;password=123 ; 密碼

[supervisord] ; supervisord 全局配置

logfile=/var/log/supervisor/supervisord.log ; supervisor 日志路徑

logfile_maxbytes=50MB ; 單個日志文件最大數

logfile_backups=10 ; 保留多少個日志文件(默認10個)

loglevel=info ; (log level;default info; others: debug,warn,trace)

pidfile=/var/run/supervisord.pid ; pid 文件路徑

nodaemon=false ; 啟動是否丟到前臺,設置為false ,表示以daemon 的方式啟動

minfds=1024 ; 最小文件打開數,對應系統limit.conf 中的nofile ,默認最小為1024,最大為4096

minprocs=200 ; 最小的進程打開數,對應系統的limit.conf 中的nproc,默認為200

;umask=022 ; (process file creation umask;default 022)

;user=chrism ; 啟動supervisord 服務的用戶,默認為root

;identifier=supervisor ; (supervisord identifier, default is 'supervisor')

;directory=/tmp ; 這里的目錄指的是服務的工作目錄

;nocleanup=true ; (don't clean up tempfiles at start;default false)

;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP)

;environment=KEY=value ; (key value pairs to add to environment)

;strip_ansi=false ; (strip ansi escape codes in logs; def. false)

; the below section must remain in the config file for RPC

; (supervisorctl/web interface) to work, additional interfaces may be

; added by defining them in separate rpcinterface: sections

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]

serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket

;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket

;username=chris ; should be same as http_username if set

;password=123 ; should be same as http_password if set

;prompt=mysupervisor ; cmd line prompt (default "supervisor")

;history_file=~/.sc_history ; use readline history if available

; The below sample program section shows all possible program subsection values,

; create one or more 'real' program: sections to be able to control them under

; supervisor.

;[program:theprogramname] ; 定義一個守護進程 ,比如下面的elasticsearch

;command=/bin/cat ; 啟動程序使用的命令,可以是絕對路徑或者相對路徑

;process_name=%(program_name)s ; 一個python字符串表達式,用來表示supervisor進程啟動的這個的名稱,默認值是%(program_name)s

;numprocs=1 ; Supervisor啟動這個程序的多個實例,如果numprocs>1,則process_name的表達式必須包含%(process_num)s,默認是1

;directory=/tmp ; supervisord在生成子進程的時候會切換到該目錄

;umask=022 ; umask for process (default None)

;priority=999 ; 權重,可以控制程序啟動和關閉時的順序,權重越低:越早啟動,越晚關閉。默認值是999

;autostart=true ; 如果設置為true,當supervisord啟動的時候,進程會自動啟動

;autorestart=true ; 設置為隨 supervisord 重啟而重啟,值可以是false、true、unexpected。false:進程不會自動重啟

;startsecs=10 ; 程序啟動后等待多長時間后才認為程序啟動成功,默認是10秒

;startretries=3 ; supervisord嘗試啟動一個程序時嘗試的次數。默認是3

;exitcodes=0,2 ; 一個預期的退出返回碼,默認是0,2。

;stopsignal=QUIT ; 當收到stop請求的時候,發送信號給程序,默認是TERM信號,也可以是 HUP, INT, QUIT, KILL, USR1, or USR2

;stopwaitsecs=10 ; 在操作系統給supervisord發送SIGCHILD信號時等待的時間

;user=chrism ; 如果supervisord以root運行,則會使用這個設置用戶啟動子程序

;redirect_stderr=true ; 如果設置為true,進程則會把標準錯誤輸出到supervisord后臺的標準輸出文件描述符

;stdout_logfile=/a/path ; 把進程的標準輸出寫入文件中,如果stdout_logfile沒有設置或者設置為AUTO,則supervisor會自動選擇一個文件位置

;stdout_logfile_maxbytes=1MB ; 標準輸出log文件達到多少后自動進行輪轉,單位是KB、MB、GB。如果設置為0則表示不限制日志文件大小

;stdout_logfile_backups=10 ; 標準輸出日志輪轉備份的數量,默認是10,如果設置為0,則不備份

;stdout_capture_maxbytes=1MB ; 當進程處于stderr capture mode模式的時候,寫入FIFO隊列的最大bytes值,單位可以是KB、MB、GB

;stdout_events_enabled=false ; 如果設置為true,當進程在寫它的stderr

;stderr_logfile=/a/path ; 把進程的錯誤日志輸出一個文件中,除非redirect_stderr參數被設置為true

;stderr_logfile_maxbytes=1MB ; 錯誤log文件達到多少后自動進行輪轉,單位是KB、MB、GB。如果設置為0則表示不限制日志文件大小

;stderr_logfile_backups=10 ; 錯誤日志輪轉備份的數量,默認是10,如果設置為0,則不備份

;stderr_capture_maxbytes=1MB ; 當進程處于stderr capture mode模式的時候,寫入FIFO隊列的最大bytes值,單位可以是KB、MB、GB

;stderr_events_enabled=false ; 如果設置為true,當進程在寫它的stderr到文件描述符的時候,PROCESS_LOG_STDERR事件會被觸發

;environment=A=1,B=2 ; 一個k/v對的list列表

;serverurl=AUTO ; 是否允許子進程和內部的HTTP服務通訊,如果設置為AUTO,supervisor會自動的構造一個url

; The below sample eventlistener section shows all possible

; eventlistener subsection values, create one or more 'real'

; eventlistener: sections to be able to handle event notifications

; sent by supervisor.

#這個地方是自定義一個守護進程

[program:elasticsearch] ; 定義一個守護進程 elasticsearch

environment=ES_HOME=/usr/local/elasticsearch ; 設置ES_HOME 環境變量

user=elk ; 啟動elasticsearch 的用戶

directory=/usr/local/elasticsearch ; 進入到這個目錄中

command=/usr/local/elasticsearch/bin/elasticsearch ; 執行啟動命令

numprocs=1 ; Supervisor啟動這個程序的多個實例,如果numprocs>1,則process_name的表達式必須包含%(process_num)s,默認是1

autostart=true ; 設置為隨 supervisord 啟動而啟動

autorestart=true ; 設置為隨 supervisord 重啟而重啟

startretries=3 ; 設置elasticsearch 重啟的重試次數

priority=1 ; 權重,可以控制程序啟動和關閉時的順序,權重越低:越早啟動,越晚關閉。默認值是999

;[eventlistener:theeventlistenername]

;command=/bin/eventlistener ; the program (relative uses PATH, can take args)

;process_name=%(program_name)s ; process_name expr (default %(program_name)s)

;numprocs=1 ; number of processes copies to start (def 1)

;events=EVENT ; event notif. types to subscribe to (req'd)

;buffer_size=10 ; event buffer queue size (default 10)

;directory=/tmp ; directory to cwd to before exec (def no cwd)

;umask=022 ; umask for process (default None)

;priority=-1 ; the relative start priority (default -1)

;autostart=true ; start at supervisord start (default: true)

;autorestart=unexpected ; restart at unexpected quit (default: unexpected)

;startsecs=10 ; number of secs prog must stay running (def. 1)

;startretries=3 ; max # of serial start failures (default 3)

;exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)

;stopsignal=QUIT ; signal used to kill process (default TERM)

;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)

;user=chrism ; setuid to this UNIX account to run the program

;redirect_stderr=true ; redirect proc stderr to stdout (default false)

;stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO

;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)

;stdout_logfile_backups=10 ; # of stdout logfile backups (default 10)

;stdout_events_enabled=false ; emit events on stdout writes (default false)

;stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO

;stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)

;stderr_logfile_backups ; # of stderr logfile backups (default 10)

;stderr_events_enabled=false ; emit events on stderr writes (default false)

;environment=A=1,B=2 ; process environment additions

;serverurl=AUTO ; override serverurl computation (childutils)

; The below sample group section shows all possible group values,

; create one or more 'real' group: sections to create "heterogeneous"

; process groups.

;[group:thegroupname] ; 服務組管理,可以將多個服務名寫到這里管理(組名自定義)

;programs=progname1,progname2 ; 上面配置好的服務名,比如elasticsearch,kibana,logstash

;priority=999 ; the relative start priority (default 999)

; The [include] section can just contain the "files" setting. This

; setting can list multiple files (separated by whitespace or

; newlines). It can also contain wildcards. The filenames are

; interpreted as relative to this file. Included files *cannot*

; include files themselves.

[include]

files = supervisord.d/*.ini

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

[root@centos-011~07:50:00]#cat /etc/supervisord.conf.bak

;Samplesupervisorconfigfile.

[unix_http_server]

file=/var/run/supervisor/supervisor.sock;socket路徑

;chmod=0700;socket文件的權限

;chown=nobody:nogroup;socket所屬用戶及組

;username=user;用戶名

;password=123;密碼

;[inet_http_server];是否啟用服務,默認是關閉的(啟用的話可以看到supervisor管理的服務狀態)

;port=127.0.0.1:9001;監聽的IP及端口

;username=user;用戶名

;password=123;密碼

[supervisord];supervisord全局配置

logfile=/var/log/supervisor/supervisord.log;supervisor日志路徑

logfile_maxbytes=50MB;單個日志文件最大數

logfile_backups=10;保留多少個日志文件(默認10個)

loglevel=info;(loglevel;defaultinfo;others:debug,warn,trace)

pidfile=/var/run/supervisord.pid;pid文件路徑

nodaemon=false;啟動是否丟到前臺,設置為false,表示以daemon的方式啟動

minfds=1024;最小文件打開數,對應系統limit.conf中的nofile,默認最小為1024,最大為4096

minprocs=200;最小的進程打開數,對應系統的limit.conf中的nproc,默認為200

;umask=022;(processfilecreationumask;default022)

;user=chrism;啟動supervisord服務的用戶,默認為root

;identifier=supervisor;(supervisordidentifier,defaultis'supervisor')

;directory=/tmp;這里的目錄指的是服務的工作目錄

;nocleanup=true;(don't clean up tempfiles at start;default false)

;childlogdir=/tmp????????????; ('AUTO' child log dir, default $TEMP)

;environment=KEY=value?????? ; (key value pairs to add to environment)

;strip_ansi=false????????????; (strip ansi escape codes in logs; def. false)

; the below section must remain in the config file for RPC

; (supervisorctl/web interface) to work, additional interfaces may be

; added by defining them in separate rpcinterface: sections

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]

serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL??for a unix socket

;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket

;username=chris??????????????; should be same as http_username if set

;password=123????????????????; should be same as http_password if set

;prompt=mysupervisor???????? ; cmd line prompt (default "supervisor")

;history_file=~/.sc_history??; use readline history if available

; The below sample program section shows all possible program subsection values,

; create one or more 'real' program: sections to be able to control them under

; supervisor.

;[program:theprogramname]??????; 定義一個守護進程 ,比如下面的elasticsearch

;command=/bin/cat??????????????; 啟動程序使用的命令,可以是絕對路徑或者相對路徑

;process_name=%(program_name)s ; 一個python字符串表達式,用來表示supervisor進程啟動的這個的名稱,默認值是%(program_name)s

;numprocs=1????????????????????; Supervisor啟動這個程序的多個實例,如果numprocs>1,則process_name的表達式必須包含%(process_num)s,默認是1

;directory=/tmp????????????????; supervisord在生成子進程的時候會切換到該目錄

;umask=022???????????????????? ; umask for process (default None)

;priority=999??????????????????; 權重,可以控制程序啟動和關閉時的順序,權重越低:越早啟動,越晚關閉。默認值是999

;autostart=true????????????????; 如果設置為true,當supervisord啟動的時候,進程會自動啟動

;autorestart=true??????????????; 設置為隨 supervisord 重啟而重啟,值可以是false、true、unexpected。false:進程不會自動重啟

;startsecs=10??????????????????; 程序啟動后等待多長時間后才認為程序啟動成功,默認是10秒

;startretries=3????????????????; supervisord嘗試啟動一個程序時嘗試的次數。默認是3

;exitcodes=0,2???????????????? ; 一個預期的退出返回碼,默認是0,2。

;stopsignal=QUIT?????????????? ; 當收到stop請求的時候,發送信號給程序,默認是TERM信號,也可以是 HUP, INT, QUIT, KILL, USR1, or USR2

;stopwaitsecs=10?????????????? ; 在操作系統給supervisord發送SIGCHILD信號時等待的時間

;user=chrism?????????????????? ; 如果supervisord以root運行,則會使用這個設置用戶啟動子程序

;redirect_stderr=true??????????; 如果設置為true,進程則會把標準錯誤輸出到supervisord后臺的標準輸出文件描述符

;stdout_logfile=/a/path????????; 把進程的標準輸出寫入文件中,如果stdout_logfile沒有設置或者設置為AUTO,則supervisor會自動選擇一個文件位置

;stdout_logfile_maxbytes=1MB?? ; 標準輸出log文件達到多少后自動進行輪轉,單位是KB、MB、GB。如果設置為0則表示不限制日志文件大小

;stdout_logfile_backups=10???? ; 標準輸出日志輪轉備份的數量,默認是10,如果設置為0,則不備份

;stdout_capture_maxbytes=1MB?? ; 當進程處于stderr capture mode模式的時候,寫入FIFO隊列的最大bytes值,單位可以是KB、MB、GB

;stdout_events_enabled=false?? ; 如果設置為true,當進程在寫它的stderr

;stderr_logfile=/a/path????????; 把進程的錯誤日志輸出一個文件中,除非redirect_stderr參數被設置為true

;stderr_logfile_maxbytes=1MB?? ; 錯誤log文件達到多少后自動進行輪轉,單位是KB、MB、GB。如果設置為0則表示不限制日志文件大小

;stderr_logfile_backups=10???? ; 錯誤日志輪轉備份的數量,默認是10,如果設置為0,則不備份

;stderr_capture_maxbytes=1MB?? ; 當進程處于stderr capture mode模式的時候,寫入FIFO隊列的最大bytes值,單位可以是KB、MB、GB

;stderr_events_enabled=false?? ; 如果設置為true,當進程在寫它的stderr到文件描述符的時候,PROCESS_LOG_STDERR事件會被觸發

;environment=A=1,B=2?????????? ; 一個k/v對的list列表

;serverurl=AUTO????????????????; 是否允許子進程和內部的HTTP服務通訊,如果設置為AUTO,supervisor會自動的構造一個url

; The below sample eventlistener section shows all possible

; eventlistener subsection values, create one or more 'real'

; eventlistener: sections to be able to handle event notifications

; sent by supervisor.

#這個地方是自定義一個守護進程

[program:elasticsearch]?????????????????????? ; 定義一個守護進程 elasticsearch

environment=ES_HOME=/usr/local/elasticsearch??; 設置ES_HOME 環境變量

user=elk??????????????????????????????????????; 啟動elasticsearch 的用戶

directory=/usr/local/elasticsearch????????????; 進入到這個目錄中

command=/usr/local/elasticsearch/bin/elasticsearch ; 執行啟動命令

numprocs=1????????????????????????????????????; Supervisor啟動這個程序的多個實例,如果numprocs>1,則process_name的表達式必須包含%(process_num)s,默認是1

autostart=true????????????????????????????????; 設置為隨 supervisord 啟動而啟動

autorestart=true??????????????????????????????; 設置為隨 supervisord 重啟而重啟

startretries=3????????????????????????????????; 設置elasticsearch 重啟的重試次數

priority=1????????????????????????????????????; 權重,可以控制程序啟動和關閉時的順序,權重越低:越早啟動,越晚關閉。默認值是999

;[eventlistener:theeventlistenername]

;command=/bin/eventlistener????; the program (relative uses PATH, can take args)

;process_name=%(program_name)s ; process_name expr (default %(program_name)s)

;numprocs=1????????????????????; number of processes copies to start (def 1)

;events=EVENT??????????????????; event notif. types to subscribe to (req'd)

;buffer_size=10;eventbufferqueuesize(default10)

;directory=/tmp;directorytocwdtobeforeexec(defnocwd)

;umask=022;umaskforprocess(defaultNone)

;priority=-1;therelativestartpriority(default-1)

;autostart=true;startatsupervisordstart(default:true)

;autorestart=unexpected;restartatunexpectedquit(default:unexpected)

;startsecs=10;numberofsecsprogmuststayrunning(def.1)

;startretries=3;max# of serial start failures (default 3)

;exitcodes=0,2;'expected'exitcodesforprocess(default0,2)

;stopsignal=QUIT;signalusedtokillprocess(defaultTERM)

;stopwaitsecs=10;maxnumsecstowaitb4SIGKILL(default10)

;user=chrism;setuidtothisUNIXaccounttoruntheprogram

;redirect_stderr=true;redirectprocstderrtostdout(defaultfalse)

;stdout_logfile=/a/path;stdoutlogpath,NONEfornone;defaultAUTO

;stdout_logfile_maxbytes=1MB;max# logfile bytes b4 rotation (default 50MB)

;stdout_logfile_backups=10;# of stdout logfile backups (default 10)

;stdout_events_enabled=false;emiteventsonstdoutwrites(defaultfalse)

;stderr_logfile=/a/path;stderrlogpath,NONEfornone;defaultAUTO

;stderr_logfile_maxbytes=1MB;max# logfile bytes b4 rotation (default 50MB)

;stderr_logfile_backups;# of stderr logfile backups (default 10)

;stderr_events_enabled=false;emiteventsonstderrwrites(defaultfalse)

;environment=A=1,B=2;processenvironmentadditions

;serverurl=AUTO;overrideserverurlcomputation(childutils)

;Thebelowsamplegroupsectionshowsallpossiblegroupvalues,

;createoneormore'real'group:sectionstocreate"heterogeneous"

;processgroups.

;[group:thegroupname];服務組管理,可以將多個服務名寫到這里管理(組名自定義)

;programs=progname1,progname2;上面配置好的服務名,比如elasticsearch,kibana,logstash

;priority=999;therelativestartpriority(default999)

;The[include]sectioncanjustcontainthe"files"setting.This

;settingcanlistmultiplefiles(separatedbywhitespaceor

;newlines).Itcanalsocontainwildcards.Thefilenamesare

;interpretedasrelativetothisfile.Includedfiles *cannot*

;includefilesthemselves.

[include]

files=supervisord.d/*.ini

2.1 為了不將所有新增配置信息全寫在一個配置文件里,這里新建一個文件夾

mkdir /usr/supervisor/supervisord.d/

2.2 修改系統配置文件

vim /usr/supervisor/supervisord.conf

2.3 include 2.1中新建的supervisord.d文件夾下所有的conf

[include]

files = /usr/supervisor/supervisord.d/*.conf

1

2

[include]

files=/usr/supervisor/supervisord.d/*.conf

2.4 若需要web查看進程,則去掉[inet_http_server]的注釋

[inet_http_server]

port=127.0.0.1:9001 ;IP按需配置

username=user

password=123

1

2

3

4

[inet_http_server]

port=127.0.0.1:9001;IP按需配置

username=user

password=123

運行Supervisor

3.0 啟動supervisord

supervisord -c /usr/supervisor/supervisord.conf

1

supervisord-c/usr/supervisor/supervisord.conf

3.1 查看監聽

lsof -i:9001

1

lsof-i:9001

到這一步,就可以通過 http://ip:9001/ 查看supervisor的web界面了,只不過目前還沒有加入任何監控程序。

3.2 增加一個配置文件,以便supervisor用來監控程序

cat > /usr/supervisor/supervisord.d/supervisor_test_one.conf

在新建的supervisor_test_one.conf文件中添加以下配置

[program:test_one]

command=java -jar /data/smallvideo/supervisor/taskApp-exec.jar TaskTestOne ; 被監控的進程路徑

priority=1 ; 數字越高,優先級越高

numprocs=1 ; 啟動幾個進程

autostart=true ; 隨著supervisord的啟動而啟動

autorestart=true ; 自動重啟

startretries=10 ; 啟動失敗時的最多重試次數

exitcodes=0 ; 正常退出代碼

stopsignal=KILL ; 用來殺死進程的信號

stopwaitsecs=10 ; 發送SIGKILL前的等待時間

redirect_stderr=true ; 重定向stderr到stdout

[program:test_two]

command=java -jar /data/smallvideo/supervisor/taskApp-exec.jar TaskTestTwo ; 被監控的進程路徑

priority=1 ; 數字越高,優先級越高

numprocs=1 ; 啟動幾個進程

autostart=true ; 隨著supervisord的啟動而啟動

autorestart=true ; 自動重啟

startretries=10 ; 啟動失敗時的最多重試次數

exitcodes=0 ; 正常退出代碼

stopsignal=KILL ; 用來殺死進程的信號

stopwaitsecs=10 ; 發送SIGKILL前的等待時間

redirect_stderr=true ; 重定向stderr到stdout

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

[program:test_one]

command=java-jar/data/smallvideo/supervisor/taskApp-exec.jarTaskTestOne;被監控的進程路徑

priority=1;數字越高,優先級越高

numprocs=1;啟動幾個進程

autostart=true;隨著supervisord的啟動而啟動

autorestart=true;自動重啟

startretries=10;啟動失敗時的最多重試次數

exitcodes=0;正常退出代碼

stopsignal=KILL;用來殺死進程的信號

stopwaitsecs=10;發送SIGKILL前的等待時間

redirect_stderr=true;重定向stderr到stdout

[program:test_two]

command=java-jar/data/smallvideo/supervisor/taskApp-exec.jarTaskTestTwo;被監控的進程路徑

priority=1;數字越高,優先級越高

numprocs=1;啟動幾個進程

autostart=true;隨著supervisord的啟動而啟動

autorestart=true;自動重啟

startretries=10;啟動失敗時的最多重試次數

exitcodes=0;正常退出代碼

stopsignal=KILL;用來殺死進程的信號

stopwaitsecs=10;發送SIGKILL前的等待時間

redirect_stderr=true;重定向stderr到stdout

3.3 supervisor配置文件詳解

- 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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

-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,orUSR2。

-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:當進程處于stderrcapturemode模式的時候,寫入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:當進程處于stderrcapturemode模式的時候,寫入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

監控demotest程序示例:

[program:demotest]

command=python demotest.py 10000 ; 被監控的進程啟動命令

directory=/root/ ; 執行前要不要先cd到目錄去,一般不用

priority=1 ;數字越高,優先級越高

numprocs=1 ; 啟動幾個進程

autostart=true ; 隨著supervisord的啟動而啟動

autorestart=true ; 自動重啟。。當然要選上了

startretries=10 ; 啟動失敗時的最多重試次數

exitcodes=0 ; 正常退出代碼(是說退出代碼是這個時就不再重啟了嗎?待確定)

stopsignal=KILL ; 用來殺死進程的信號

stopwaitsecs=10 ; 發送SIGKILL前的等待時間

redirect_stderr=true ; 重定向stderr到stdout

1

2

3

4

5

6

7

8

9

10

11

12

[program:demotest]

command=pythondemotest.py10000;被監控的進程啟動命令

directory=/root/;執行前要不要先cd到目錄去,一般不用

priority=1;數字越高,優先級越高

numprocs=1;啟動幾個進程

autostart=true;隨著supervisord的啟動而啟動

autorestart=true;自動重啟。。當然要選上了

startretries=10;啟動失敗時的最多重試次數

exitcodes=0;正常退出代碼(是說退出代碼是這個時就不再重啟了嗎?待確定)

stopsignal=KILL;用來殺死進程的信號

stopwaitsecs=10;發送SIGKILL前的等待時間

redirect_stderr=true;重定向stderr到stdout

3.4 重啟supervisor

supervisorctl -c /usr/supervisor/supervisord.conf

1

supervisorctl-c/usr/supervisor/supervisord.conf

現在就可以在http://ip:9001/中訪問test_one的程序了。

3.5 supervisor開機自動啟動

3.5.1 在目錄/usr/lib/systemd/system/ 新建文件supervisord.service,并添加配置內容

[Unit]

Description=Process Monitoring and Control Daemon

After=rc-local.service nss-user-lookup.target

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /usr/supervisor/supervisord.conf ;開機啟動時執行

ExecStop=/usr/bin/supervisord shutdown

ExecReload=/usr/bin/supervisord reload

killMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[Unit]

Description=ProcessMonitoringandControlDaemon

After=rc-local.servicenss-user-lookup.target

[Service]

Type=forking

ExecStart=/usr/bin/supervisord-c/usr/supervisor/supervisord.conf;開機啟動時執行

ExecStop=/usr/bin/supervisordshutdown

ExecReload=/usr/bin/supervisordreload

killMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

3.5.2 啟動服務

systemctl enable supervisord

3.5.3 驗證一下是否為開機啟動

systemctl is-enabled supervisord

Supervisor周邊

4.1 supervisor常用命令

### 查看supervisorctl支持的命令

# supervisorctl help

default commands (type help ):

=====================================

add exit open reload restart start tail

avail fg pid remove shutdown status update

clear maintail quit reread signal stop version

### 查看當前運行的進程列表

# supervisorctl status

1

2

3

4

5

6

7

8

9

10

### 查看supervisorctl支持的命令

# supervisorctl help

defaultcommands(typehelp):

=====================================

addexitopenreloadrestartstarttail

availfgpidremoveshutdownstatusupdate

clearmaintailquitrereadsignalstopversion

### 查看當前運行的進程列表

# supervisorctl status

update 更新新的配置到supervisord(不會重啟原來已運行的程序)

reload,載入所有配置文件,并按新的配置啟動、管理所有進程(會重啟原來已運行的程序)

start xxx: 啟動某個進程

restart xxx: 重啟某個進程

stop xxx: 停止某一個進程(xxx),xxx為[program:theprogramname]里配置的值

stop groupworker: 重啟所有屬于名為groupworker這個分組的進程(start,restart同理)

stop all,停止全部進程,注:start、restart、stop都不會載入最新的配置文

reread,當一個服務由自動啟動修改為手動啟動時執行一下就ok

ps:有些版本并不支持supervisorctl ,可以通過supervisorctl -c /usr/supervisor/supervisord.conf喚起命令,格式如上,實際效果如下。

4.2 如果supervisorCPU和內存占用率特別高,導致機器卡死。

嘗試注釋掉2.4中的web。

4.3 Unlinking stale socket /tmp/supervisor.sock

解決方案,執行unlink /tmp/supervisor.sock

總結

以上是生活随笔為你收集整理的supervisor监控php进程程序,详解Supervisor进程守护监控(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲免费色图 | 日本少妇b | 蜜桃精品一区二区 | 久久久女人| 日本一区不卡在线 | 在线免费观看高清视频 | 美女羞羞动态图 | 青草青在线 | 久久久久99精品 | 麻豆综合网 | 成年女人免费视频 | 成人做爰免费视频免费看 | 一区二区日韩av | 亚洲成a人在线观看 | 一区二区三区av在线 | 性户外野战hd | 日韩av.com | 久久综合久久久 | 激情久久av | 久久久精品欧美 | 日韩av电影一区 | 欧美99热| 国产精品日 | 亚州a级片 | 久久夜夜操妹子 | 日本一区二区人妻 | www.日韩av| 欧美日本日韩 | 好色先生tv官网 | 超碰97免费在线 | 亚洲小说区图片区 | 91看片就是不一样 | 日本天堂在线观看 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 成人免费无码大片a毛片抽搐色欲 | 日本www在线播放 | 中文字幕91视频 | 国产成人亚洲欧洲在线 | 日韩欧美一二三四区 | 欧美日韩国产综合网 | 日日夜夜噜噜噜 | 国产激情视频一区 | 欧美69囗交视频 | 中文字幕22页 | 各种含道具高h调教1v1男男 | 农村妇女毛片精品久久久 | 亚洲精品97久久中文字幕无码 | 国产91久久精品一区二区 | 日本少妇一级片 | 天天操天天爽天天干 | 一本大道久久精品 | 国产精品九九 | 婷婷激情影院 | 中文字幕在线观看第二页 | 日噜| 凹凸日日摸日日碰夜夜 | 人人看人人看 | 永久在线视频 | 日韩视频一区二区三区 | 爱av在线| 强辱丰满人妻hd中文字幕 | aaaaa黄色片 天堂网在线观看 | 中文字幕不卡av | 狠狠干2022| 四虎精品在永久在线观看 | 九九热视频精品 | 99久久综合| 日批的视频 | 久久久精 | 嫦娥性艳史bd | 国产毛片一区二区 | 中文字幕亚洲欧美日韩在线不卡 | 国产 欧美 在线 | 91丨porny丨国产 | 成人勉费视频 | 欧美日韩久久精品 | 国产日韩一区二区在线 | 日本中文字幕影院 | 国产精品ww | 毛片毛多水多 | 成人吃奶视频 | 性饥渴的农村熟妇 | xxxwww在线观看 | 日韩毛片视频 | 日韩不卡av在线 | 女性裸体无遮挡胸 | 男人靠女人免费视频网站 | 激情偷乱人成视频在线观看 | 九九热这里有精品视频 | 福利影院av | 97超碰人人在线 | 91香蕉一区二区三区在线观看 | 一级黄色大全 | 黄色a一片| 蜜桃91丨九色丨蝌蚪91桃色 | 爱情岛论坛永久入址在线 | 激情五月婷婷色 | 影音先锋色小姐 | 欧美人与动物xxxxx |