DAEMON

Alex abusquets en gmail.com
Lun Abr 24 15:35:30 CEST 2006


Hola a todos, tengo un script que escucha las peticiones a un puerto
determinado, tiene un while que hace que no termine la ejecución.
Lo que me passa es que al ejecutarlo ya no puedo usar la consola sin hacer
un control+c.
Cómo podria solucionar eso sin hacer un nohup con job.

#!/usr/bin/python

import os
from socket import *
myHost = ''
myPort = 2009
pidfile = "/tmp/gestionaisp.pid"
usuariUid = 2002
usuariGid = 2001

s = socket(AF_INET, SOCK_STREAM)    # create a TCP socket
s.bind((myHost, myPort))            # bind it to the server port
s.listen(5)                         # allow 5 simultaneous


#->Alex
pid = str( os.getpid() )
os.system("echo "+ pid + " > "+ pidfile)
os.setgid(usuariGid)
os.setuid(usuariUid)
#-<Alex

while 1:
    # wait for next client to connect
    connection, address = s.accept() # connection is a new socket
    while 1:
        data = connection.recv(1024) # receive up to 1K bytes
        if data:
            #Aqui hauriem de passar les dades al binary de php
            # i esperar la resposta
#           os.system('mkdir hola')
#           resposta = os.popen('ls -n').read()
            connection.send(  "as"  )
        else:
            break

connection.close()              # close socket




Más información sobre la lista de distribución Python-es