Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

Archive for February, 2008

Llamadas al sistema desde python

Procesando Argumentos

    import sys

    # argv es una lista de cadenas que contiene parametros de la linea de comandos
    #   argv[0] sera siempre el nombre del comando invocado
    for arg in sys.argv:
        print arg
    argc = len(sys.argv)

fork –Creando procesos hijo

    import os

    # fork crea proceso hijo. Returna 0 en
    # caso de exito y -1 en caso de falla.

    if os.fork() == 0:
       print "in child"
    else:
       print "in parent"

La funcion exec

    import os

    # Lanza proceso translapados... pero hace que nuestro script finalice
    #   familia de  funciones exec:

    # Estas versiones requieren el path completo hacia el ejecutable
    #  execl(pathToProg, arg0, arg1, arg2, ...)
    #  execv(pathToProg, argList)

    # Estas dos buscaran el programa en el actual PATH
    #  execlp(prog, arg0, arg1, arg2, ...)
    #  execvp(prog, argList)

    os.execl("/bin/more", "more", "foo.txt")
    os.execvp(sys.argv[0], sys.argv)

sleep - esperando un poquito

    import time

    # sleep(n) pone el proceso a dormir por n segundos.
    time.sleep(10)

exit - Salir

    import sys

    sys.exit(0)

wait

    import os

    # waits (sleeps) for child to terminate, returns pid and status
    pid, status = wait()  # no arguments, returns a pair of values
    print "Returned status:", status/256

getpid

El identificador de proceso

    import os

    myId = os.getpid()