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

安装环境

    centos 7.2

安装supervisor

easy_install supervisor

 

echo_supervisord_conf > /etc/supervisord.conf

 

配置supervisor 如下

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

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 

一、添加好配置文件后

二、更新新的配置到supervisord

supervisorctl update

三、重新启动配置中的所有程序

supervisorctl reload

四、启动某个进程(program_name=你配置中写的程序名称)

supervisorctl start program_name

五、查看正在守候的进程

supervisorctl

六、停止某一进程 (program_name=你配置中写的程序名称)

pervisorctl stop program_name

七、重启某一进程 (program_name=你配置中写的程序名称)

supervisorctl restart program_name

八、停止全部进程

supervisorctl stop all

注意:显示用stop停止掉的进程,用reload或者update都不会自动重启

转载于:https://my.oschina.net/u/588516/blog/3063738

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值