alexsilva / supervisor

Supervisor process control system for Windows
http://supervisord.org
Other
118 stars 26 forks source link

windows server 2012 r2 > AttributeError: 'NoneType' object has no attribute 'isatty' #32

Closed adamgyongyosi closed 3 years ago

adamgyongyosi commented 3 years ago

pip version: 21.0.1 supervisor-win 4.5.0 https://pypi.org/project/supervisor-win/

log:

2021-02-01 18:37:04,524 [INFO] supervisor config path: C:\supervisor\supervisord.conf
2021-02-01 18:37:04,759 [INFO] supervisor starting...
2021-02-01 18:37:04,759 [ERROR] supervisor starting failed
Traceback (most recent call last):
  File "C:\Users\Rendszergazda\AppData\Local\Programs\Python\Python39\lib\site-packages\supervisor\services.py", line 226, in main
    supervisord.main(("-c", self.supervisor_conf),
  File "C:\Users\Rendszergazda\AppData\Local\Programs\Python\Python39\lib\site-packages\supervisor\supervisord.py", line 407, in main
    go(options)
  File "C:\Users\Rendszergazda\AppData\Local\Programs\Python\Python39\lib\site-packages\supervisor\supervisord.py", line 419, in go
    d.main()
  File "C:\Users\Rendszergazda\AppData\Local\Programs\Python\Python39\lib\site-packages\supervisor\supervisord.py", line 77, in main
    self.options.make_logger()
  File "C:\Users\Rendszergazda\AppData\Local\Programs\Python\Python39\lib\site-packages\supervisor\options.py", line 1219, in make_logger
    loggers.handle_stdout(self.logger, format)
  File "C:\Users\Rendszergazda\AppData\Local\Programs\Python\Python39\lib\site-packages\supervisor\loggers.py", line 421, in handle_stdout
    if not sys.stdout.isatty():
AttributeError: 'NoneType' object has no attribute 'isatty'

config:

; 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 ".

;

; Warning:

;  Paths throughout this example file use /tmp because it is available on most

;  systems.  You will likely need to change these to locations more appropriate

;  for your system.  Some systems periodically delete older files in /tmp.

;  Notably, if the socket file defined in the [unix_http_server] section below

;  is deleted, supervisorctl will be unable to connect to supervisord.

[inet_http_server]         ; inet (TCP) server disabled by default

port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface

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

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

[supervisord]

logfile=C:\\supervisor\\supervisord.log ; (main log file;default $CWD/supervisord.log)

logfile_maxbytes=50MB               ; (max main logfile bytes b4 rotation;default 50MB)

logfile_backups=10                  ; (num of main logfile rotation backups;default 10)

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

pidfile=C:\\supervisor\\supervisord.pid ; (supervisord pidfile;default supervisord.pid)

nodaemon=true                      ; (start in foreground if true;default false)

silent=false                 ; no logs to stdout if true; default false

minfds=1024                         ; (min. avail startup file descriptors;default 1024)

minprocs=200                        ; (min. avail process descriptors;default 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=%(ENV_TMP)               ; (default is not to cd during start)

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

;childlogdir=%(ENV_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)

;delaysecs=0.5                      ; (delay system processing per seconds; def. 0.5)

; 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=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket

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

password=nobody                ; 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=cmd.exe               ; 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)

;directory=%(ENV_TMP)          ; directory to cwd to before exec (def no cwd)

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

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

;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        ; when to restart if exited after running (def: unexpected)

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

;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=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 (0 means none, default 10)

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

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

;stdout_syslog=false           ; send stdout to syslog with process name (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)

;stderr_syslog=false           ; send stderr to syslog with process name (default false)

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

;serverurl=AUTO                ; override serverurl computation (childutils)

;cpupriority=normal            ; cpu priority; .def normal; others: realtime, high, above, below, idle

;cpuaffinity=0                 ; number of cores of cpu is usable by process. def 0 (all cores)

;systemjob=true                ; if process die with supervisor. def true

; 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=path\\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=%(ENV_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                   ; 'expected' exit codes used with autorestart (default 0)

;stopsignal=TERM               ; 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)

;stdout_syslog=false           ; send stdout to syslog with process name (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)

;stderr_syslog=false           ; send stderr to syslog with process name (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 = relative\\directory\\*.ini

[program:testelek]
command=C:\\php-7.4.4-nts-Win32-vc15-x64\\php.exe -f C:\\supervisor\\asd.php
autostart=true
autorestart=true
process_name=%(program_name)s_%(process_num)02d
numprocs=5
redirect_stderr=true
stdout_logfile=log_%(program_name)s_%(process_num)02d.log
stdout_logfile_maxbytes=0
alexsilva commented 3 years ago

You can do a test and now to see if the problem has been resolved.

python -m pip install git+https://github.com/alexsilva/supervisor.git@windows -U

huzineczerik commented 3 years ago

@alexsilva

@adamgyongyosi is my collegaue. Thank You for watching the bug, but we had to be solved urgently and we solved the problem with NodeJs Forever package