Я пытаюсь получить upstart-socket-bridge для передачи сокета в приложение Python3.
Существуют ли какие-либо рабочие примеры u-s-b, использующие Python 2 или 3?
Этот пример является только тестовой установкой. u-s-b запускает приложение Python3, но дескриптор файла из Upstart кажется недействительным.
# Edited to remove lots of debug lines
import os, traceback, socket
fd = os.environ["UPSTART_FDS"]
# Log the socket connection activity
with open("/tmp/socket-test-outfile", 'w') as outfile:
outfile.write("debug: fd={}\n".format(fd))
try:
s = socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)
s.listen(1)
conn, addr = s.accept()
outfile.write("{}\n".format(conn.recv(1024).decode('UTF-8')))
except:
outfile.write("s error: {}\n".format(traceback.print_exc()))
outfile.close()
fd = 10 на все попытки до сих пор. Но этот fd не создает полезного сокета, который я могу принять () и прочитать (). Вывод ошибки Нет
>>> import socket
>>> s = socket.fromfd(10, socket.AF_INET, socket.SOCK_STREAM)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.3/socket.py", line 219, in fromfd
nfd = dup(fd)
OSError: [Errno 9] Bad file descriptor
Как я могу получить upstart-socket-bridge, работающий с Python?