supervisor的配置與laravel php artisan queue:work的配置

安裝環境php

    centos 7.2html

安裝supervisor

easy_install supervisor

 

echo_supervisord_conf > /etc/supervisord.conflaravel

 

配置supervisor 以下web

1apache

2centos

3tomcat

4安全

5bash

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

143

144

145

146

147

148

149

150

151

; Sample supervisor config file.

;

; For more information on the config file, please see:

; http://supervisord.org/configuration.html

;

; Notes:

;  - Shell expansion ("~" or "$HOME") is not supported.  Environment

;    variables can be expanded using this syntax: "%(ENV_HOME)s".

;  - Quotes around values are not supported, except in the case of

;    the environment= options as shown below.

;  - Comments must have a leading space: "a=b ;comment" not "a=b;comment".

;  - Command will be truncated if it looks like a config file comment, e.g.

;    "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ".

 

[unix_http_server]

file=/tmp/supervisor.sock   ; ;UNIX socket 文件,supervisorctl 會使用

;chmod=0700                 ;socket文件的mode,默認是0700

;chown=nobody:nogroup       ; socket文件的owner,格式:uid:gid

;username=user              ; default is no username (open server)

;password=123               ; default is no password (open server)

 

;[inet_http_server]         ; HTTP服務器,提供web管理界面

;port=127.0.0.1:9001        ; Web管理後臺運行的IP和端口,若是開放到公網,須要注意安全性

;username=user              ; 登陸管理後臺的用戶名

;password=123               ; 登陸管理後臺的密碼

 

[supervisord]

logfile=/tmp/supervisord.log ; 日誌文件,默認是 $CWD/supervisord.log

logfile_maxbytes=50MB        ; 日誌文件大小,超出會rotate,默認 50MB,若是設成0,表示不限制大小

logfile_backups=10           ; 日誌文件保留備份數量默認10,設爲0表示不備份

loglevel=info                ; 日誌級別,默認info,其它: debug,warn,trace

pidfile=/tmp/supervisord.pid ; pid 文件

nodaemon=false               ; 是否在前臺啓動,默認是false,即以 daemon 的方式啓動

minfds=1024                  ; 能夠打開的文件描述符的最小值,默認 1024

minprocs=200                 ; 能夠打開的進程數的最小值,默認 200

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

;user=chrism                 ; default is current user, required if root

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

;directory=/tmp              ; default is not to cd during start

;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 rpcinterface:supervisor 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:x] sections.

 

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

 

; The supervisorctl section configures how supervisorctl will connect to

; supervisord.  configure it match the settings in either the unix_http_server

; or inet_http_server section.

 

[supervisorctl]

serverurl=unix:///tmp/supervisor.sock ; 經過UNIX socket鏈接supervisord,路徑與unix_http_server部分的file一致

;serverurl=http://127.0.0.1:9001 ;經過HTTP的方式鏈接supervisord

;username=chris              ; should be same as in [*_http_server] if set

;password=123                ; should be same as in [*_http_server] if set

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

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

 

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

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

; supervisor.

 

;[program:theprogramname]

;command=/bin/cat              ;  程序啓動命令

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

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

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

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

;priority=999                  ; 進程啓動優先級,默認999,值小的優先啓動

;autostart=true                ;在supervisord啓動的時候也自動啓動

;startsecs=1                   ; 啓動10秒後沒有異常退出,就表示進程正常啓動了,默認爲1秒

;startretries=3                ; 啓動失敗自動重試次數,默認是3

;autorestart=unexpected        ; 程序退出後自動重啓,可選值:[unexpected,true,false],默認爲unexpected,表示進程意外殺死後才重啓

;exitcodes=0,2                 ; 'expected' exit codes used with autorestart (default 0,2)

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

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

;stopasgroup=false             ; 默認爲false,進程被殺死時,是否向這個進程組發送stop信號,包括子進程

;killasgroup=false             ; ;默認爲false,向進程組發送kill信號,包括子進程

;user=chrism                   ; 用哪一個用戶啓動進程,默認是root

;redirect_stderr=true          ; 把stderr重定向到stdout,默認false

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

;stdout_logfile_maxbytes=1MB   ; stdout 日誌文件大小,默認50MB

;stdout_logfile_backups=10     ;stdout 日誌文件備份數,默認是10

;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)

;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=10     ; # of stderr logfile backups (0 means none, default 10)

;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)

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

;environment=A="1",B="2"       ; process environment additions (def no adds)

;serverurl=AUTO                ; override serverurl computation (childutils)

; stdout 日誌文件,須要注意當指定目錄不存在時沒法正常啓動,因此須要手動建立目錄(supervisord 會自動建立日誌文件)

 

; The sample eventlistener section below shows all possible eventlistener

; subsection values.  Create one or more 'real' eventlistener: sections to be

; able to handle event notifications sent by supervisord.

 

;[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)

;startsecs=1                   ; # of secs prog must stay up to be running (def. 1)

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

;autorestart=unexpected        ; autorestart if exited after running (def: unexpected)

;exitcodes=0,2                 ; 'expected' exit codes used with autorestart (default 0,2)

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

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

;stopasgroup=false             ; send stop signal to the UNIX process group (default false)

;killasgroup=false             ; SIGKILL the UNIX process group (def false)

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

;redirect_stderr=false         ; redirect_stderr=true is not allowed for eventlisteners

;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 (0 means none, 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=10     ; # of stderr logfile backups (0 means none, 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 sample group section below shows all possible group values.  Create one

; or more 'real' group: sections to create "heterogeneous" process groups.

 

;[group:thegroupname]

;programs=progname1,progname2  ; each refers to 'x' in [program:x] definitions

;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 = /etc/supervisor/conf.d/*.ini  ;能夠指定一個或多個以.ini結束的配置文件  

;include示例:

;files = /opt/absolute/filename.ini /opt/absolute/*.ini foo.conf config??.ini

 

配置laravel  隊列queue 進程

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

[program:aiwei_demo_UrlLog]

command=php artisan queue:work

directory=/root/data/html/aiwei-demo/

process_name  = %(program_name)s_%(process_num)s

stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out

autostart=true

autorestart=true

startsecs=5

priority=1

stopasgroup=true

killasgroup=true

numprocs= 1   //配一個,貌似多了會執行屢次。待驗證、進程一個

stdout_logfile          = /var/log/supervisor/aiwei_demo_UrlLog_stdout.log

stdout_logfile_maxbytes = 10MB

stderr_logfile          = /var/log/supervisor/aiwei_demo_UrlLog_stderr.log

stderr_logfile_maxbytes = 10MB

        

supervisor 一些操做

首先啓動supervisor    supervisord -c /etc/supervisor/supervisord.conf 

1、添加好配置文件後

2、更新新的配置到supervisord

supervisorctl update

3、從新啓動配置中的全部程序

supervisorctl reload

4、啓動某個進程(program_name=你配置中寫的程序名稱)

supervisorctl start program_name

5、查看正在守候的進程

supervisorctl

6、中止某一進程 (program_name=你配置中寫的程序名稱)

pervisorctl stop program_name

7、重啓某一進程 (program_name=你配置中寫的程序名稱)

supervisorctl restart program_name

8、中止所有進程

supervisorctl stop all

注意:顯示用stop中止掉的進程,用reload或者update都不會自動重啓

相關文章
相關標籤/搜索