diff options
author | Matt Wilson <msw@redhat.com> | 2001-07-06 03:53:54 +0000 |
---|---|---|
committer | Matt Wilson <msw@redhat.com> | 2001-07-06 03:53:54 +0000 |
commit | 5ff21c7cb43dc8ce0a19d768c6fbadb3c7daedac (patch) | |
tree | d03ba5f602ba2e978bd86cb21db95cfff41e4e42 /syslogd.py | |
parent | c43ea8581fba1789aade518540a9fa55e7590adf (diff) | |
download | anaconda-5ff21c7cb43dc8ce0a19d768c6fbadb3c7daedac.tar.gz anaconda-5ff21c7cb43dc8ce0a19d768c6fbadb3c7daedac.tar.xz anaconda-5ff21c7cb43dc8ce0a19d768c6fbadb3c7daedac.zip |
make syslog a global object and don't kill it, let init kill it later. #47556
Diffstat (limited to 'syslogd.py')
-rw-r--r-- | syslogd.py | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/syslogd.py b/syslogd.py index afe31eefd..5a0ce788f 100644 --- a/syslogd.py +++ b/syslogd.py @@ -1,5 +1,5 @@ # -# syslogd.py - a simple syslogd implementation +# syslogd.py - a simple syslogd implementation and wrapper for launching it # # Erik Troan <ewt@redhat.com> # @@ -14,6 +14,7 @@ # import sys, os +import string from socket import * from select import select @@ -52,3 +53,37 @@ class Syslogd: output = output filename = root + socket; self.goSyslog(output, filename) + +class InstSyslog: + def __init__ (self): + self.pid = -1; + + def start (self, root, log): + self.pid = os.fork () + if not self.pid: + # look on PYTHONPATH first, so we use updated anaconda + path = None + if os.environ.has_key('PYTHONPATH'): + for f in string.split(os.environ['PYTHONPATH'], ":"): + if os.access (f+"/anaconda", os.X_OK): + path = f+"/anaconda" + break + + if not path: + if os.access ("./anaconda", os.X_OK): + path = "./anaconda" + elif os.access ("/usr/bin/anaconda.real", os.X_OK): + path = "/usr/bin/anaconda.real" + else: + path = "/usr/bin/anaconda" + + os.execv (path, ("syslogd", "--syslogd", root, log)) + + def stop(self): + if self.pid == -1: + raise RuntimeError, "syslogd not running" + os.kill (self.pid, 15) + os.wait (self.pid) + self.pid = -1 + +syslog = InstSyslog() |