diff options
author | Erik Troan <ewt@redhat.com> | 1999-05-08 15:20:28 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 1999-05-08 15:20:28 +0000 |
commit | 6ebc9945b1f9421bc8891f37f35df84c6b268baf (patch) | |
tree | bfe6f048998f8a07c85397a35ca0677ca527b4bf /syslogd.py | |
parent | e5b21144b27327c0e742a3bfc1778a092cf556b4 (diff) | |
download | anaconda-6ebc9945b1f9421bc8891f37f35df84c6b268baf.tar.gz anaconda-6ebc9945b1f9421bc8891f37f35df84c6b268baf.tar.xz anaconda-6ebc9945b1f9421bc8891f37f35df84c6b268baf.zip |
*** empty log message ***
Diffstat (limited to 'syslogd.py')
-rw-r--r-- | syslogd.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/syslogd.py b/syslogd.py new file mode 100644 index 000000000..91fcc77f7 --- /dev/null +++ b/syslogd.py @@ -0,0 +1,51 @@ +# Simple syslog + +import sys, os +from socket import * +from select import select + +class Syslog: + + def goSyslog(self, output, sockName): + sock = socket(AF_UNIX, SOCK_STREAM) + + try: + os.unlink(sockName) + except os.error: + pass + + sock.bind(sockName) + acceptedFds = [] + sock.listen(5) + + while (1): + list = acceptedFds + [ sock ] + list = select(list, [], [])[0] + try: + list.remove(sock) + (fd, remoteAddr) = sock.accept() + acceptedFds.append(fd) + except ValueError: + pass + + for fd in list: + msg = fd.recv(50) + if (msg): + output.write(msg) + else: + acceptedFds.remove(fd) + fd.close() + + def __del__(self): + self.kill() + + def kill(self): + os.kill(self.child, 15) + os.waitpid(self.child, 0) + + def __init__(self, root = "", output = sys.stdout, socket = "/dev/log"): + output = output + filename = root + socket; + self.child = os.fork() + if (not self.child): + self.goSyslog(output, filename) |