рдЕрдВрдХ #120 рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрд╕реНрдХрд░рдг 3.1.1 рдореЗрдВ, рдХрд┐рд╕реА рдиреЗ рдЧрд▓рддреА рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдПрдХ рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдФрд░ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд▓реЗрдХрд░, рди рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЧрд╛рдпрдм рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдирд╛рд░рд╛рдЬ рднреА рд╣реБрдЖ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд▓реЙрдЧрдбрд┐рд░ рдмрдирд╛рдирд╛ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдФрд░ рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП
рдореИрдВрдиреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдирд╛рд░рд╛рдЬ рднреА рд╣реБрдЖ рд╣реВрдВред
рдпрд╣ рдХрдм рд╣реЛрддрд╛ рд╣реИ? рдореВрд▓ рдЯрд┐рдкреНрдкрдгреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдХреНрд░реИрд╢ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм stdout_logfile
рдПрдХ [program:x]
рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдПрдХ рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ? рдЖрдк рдХрд┐рд╕ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд▓реЙрдЧрдбрд┐рд░ рдмрдирд╛рдирд╛ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ
рдореИрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИред supervisord
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЕрдиреБрдорддрд┐рдпрд╛рдВ рдХреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдм рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдврд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдпрд╣ рдХрд░ рд╕рдХрддреА рд╣реИ рдХрд┐ рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдирд╛ рд╣реИред
рдХрдо рд╕реЗ рдХрдо рдЗрд╕реЗ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдПрдХ [program:x]
рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝рдирд╛ рдЬрд╣рд╛рдВ stdout_logfile
рдпрд╛ stderr_logfile
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ supervisord
рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдХреНрд░реИрд╢ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдХ [рдкреНрд░реЛрдЧреНрд░рд╛рдо: x] рдЦрдВрдб рдореЗрдВ stdout_logfile рдПрдХ рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ? рдЖрдк рдХрд┐рд╕ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рд╣рд╛рдВред рдореЗрд░реЗ рд▓рд┐рдП 3.1.3 рдкрд░ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ред
fd22ca89ff353fbe92845e9d2517645e6cf149ac рдореЗрдВ рдлрд┐рдХреНрд╕реНрдбред рдпрд╣ рдлрд┐рдХреНрд╕ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ 3.2 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рддрдп рд╣реИред рдиреНрдпреВрдирддрдо supervisord.conf
:
[supervisord]
logfile = /tmp/supervisord.log
[inet_http_server]
port = 127.0.0.1:9001
[supervisorctl]
serverurl = http://127.0.0.1:9001
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[program:cat]
command = /bin/cat
stdout_logfile = /thelogdir/foo.txt
autostart = false
рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореМрдЬреВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ supervisord
рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░ рджреЗрдЧреАред рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ supervisord
рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ:
$ mkdir /thelogdir
$ supervisord --version
3.2.0.dev0
$ supervisord -n -c /path/to/supervisord.conf
2015-08-18 14:38:52,503 INFO Increased RLIMIT_NOFILE limit to 1024
2015-08-18 14:38:52,516 INFO RPC interface 'supervisor' initialized
2015-08-18 14:38:52,516 CRIT Server 'inet_http_server' running without any HTTP authentication checking
2015-08-18 14:38:52,516 INFO supervisord started with pid 49508
рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рдХрд╛рд▓реЗрдВ рдЬрдмрдХрд┐ supervisord
рдЕрднреА рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ:
$ rmdir /thelogdir
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
$ supervisorctl -c /path/to/supervisord.conf
cat STOPPED Not started
supervisor> start cat
cat: ERROR (spawn error)
supervisor> status
cat FATAL unknown error making dispatchers for 'cat': ENOENT
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
fd22ca89ff353fbe92845e9d2517645e6cf149ac рдореЗрдВ рдлрд┐рдХреНрд╕реНрдбред рдпрд╣ рдлрд┐рдХреНрд╕ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ 3.2 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рддрдп рд╣реИред рдиреНрдпреВрдирддрдо
supervisord.conf
:рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореМрдЬреВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛
supervisord
рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░ рджреЗрдЧреАред рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВsupervisord
рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ:рд▓реЙрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рдХрд╛рд▓реЗрдВ рдЬрдмрдХрд┐
supervisord
рдЕрднреА рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ:рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: