I have a python script that when run on the command line is well behaved (when I press Ctrl-C all the processes die), however when I try running it with supervisor only the main process is killed by `supervisorctl stop`. The docs (http://supervisord.org/subprocess.html#nondaemonizing-of-subprocesses) say that it should be ok to run with supervisor. The output when I stop it on the command line is below.

^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
Process Process-4:
Process Process-2:
Traceback (most recent call last):
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    func(*targs, **kargs)
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap File "/usr/lib/python2.7/multiprocessing/util.py", line 295, in _exit_function
    p.join()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 145, in join
    res = self._popen.wait(timeout)
    self.run()
  File "/usr/lib/python2.7/multiprocessing/forking.py", line 148, in wait
  File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self.run()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
    self._target(*self._args, **self._kwargs)
  File "dummy-smtp-server.py", line 40, in _accept_subprocess
  File "dummy-smtp-server.py", line 40, in _accept_subprocess
    return self.poll(0)
    pair = self.accept()
  File "/usr/lib/python2.7/multiprocessing/forking.py", line 133, in poll
    pair = self.accept()
  File "/usr/lib/python2.7/asyncore.py", line 358, in accept
    pid, sts = os.waitpid(self.pid, flag)
  File "/usr/lib/python2.7/asyncore.py", line 358, in accept
KeyboardInterrupt
    conn, addr = self.socket.accept()
    conn, addr = self.socket.accept()
  File "/usr/lib/python2.7/socket.py", line 202, in accept
  File "/usr/lib/python2.7/socket.py", line 202, in accept
Error in sys.exitfunc:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
File "/usr/lib/python2.7/multiprocessing/util.py", line 295, in _exit_function
    p.join()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 145, in join
    res = self._popen.wait(timeout)
  File "/usr/lib/python2.7/multiprocessing/forking.py", line 148, in wait
    sock, addr = self._sock.accept()
    sock, addr = self._sock.accept()
    return self.poll(0)
KeyboardInterrupt
  File "/usr/lib/python2.7/multiprocessing/forking.py", line 133, in poll
KeyboardInterrupt
    pid, sts = os.waitpid(self.pid, flag)
KeyboardInterrupt
Process Process-5:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "dummy-smtp-server.py", line 40, in _accept_subprocess
    pair = self.accept()
  File "/usr/lib/python2.7/asyncore.py", line 358, in accept
    conn, addr = self.socket.accept()
  File "/usr/lib/python2.7/socket.py", line 202, in accept
    sock, addr = self._sock.accept()
KeyboardInterrupt
Process Process-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
Process Process-3:
Traceback (most recent call last):
    self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
  File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "dummy-smtp-server.py", line 40, in _accept_subprocess
    pair = self.accept()
  File "/usr/lib/python2.7/asyncore.py", line 358, in accept
    self.run()
  File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "dummy-smtp-server.py", line 40, in _accept_subprocess
    conn, addr = self.socket.accept()
  File "/usr/lib/python2.7/socket.py", line 202, in accept
    pair = self.accept()
  File "/usr/lib/python2.7/asyncore.py", line 358, in accept
    sock, addr = self._sock.accept()
KeyboardInterrupt
    conn, addr = self.socket.accept()
  File "/usr/lib/python2.7/socket.py", line 202, in accept
    sock, addr = self._sock.accept()
KeyboardInterrupt

_______________________________________________
Supervisor-users mailing list
[email protected]
http://lists.supervisord.org/mailman/listinfo/supervisor-users

Reply via email to