github.com/drud/ddev@v1.21.5-alpha1.0.20230226034409-94fcc4b94453/containers/ddev-webserver/ddev-webserver-base-files/usr/local/bin/kill_supervisor.py (about)

     1  #!/usr/bin/env python3
     2  import sys
     3  import os
     4  import signal
     5  
     6  # From https://blog.zhaw.ch/icclab/process-management-in-docker-containers/
     7  
     8  def write_stdout(s):
     9     sys.stdout.write(s)
    10     sys.stdout.flush()
    11  def write_stderr(s):
    12     sys.stderr.write(s)
    13     sys.stderr.flush()
    14  def main():
    15     while 1:
    16         write_stdout('READY\n')
    17         line = sys.stdin.readline()
    18         write_stdout('This line kills supervisor: ' + line)
    19         try:
    20                 pidfile = open('/var/run/supervisord.pid','r')
    21                 pid = int(pidfile.readline())
    22                 os.kill(pid, signal.SIGQUIT)
    23         except Exception as e:
    24                 write_stdout('Could not kill supervisor: ' + e.strerror + '\n')
    25         write_stdout('RESULT 2\nOK')
    26  if __name__ == '__main__':
    27     main()
    28     import sys