Открыть дочерний процесс, чтобы привязать каждый файл в файле конфигурации? - PullRequest
0 голосов
/ 20 декабря 2011

Я использую синтаксический анализатор конфигурации для разбора файла конфигурации. Мне нужно подключить каждый файл в разделе файлов на отдельном терминале. Я использую Python на Mac

код, который я написал, дает мне все, что враздел файлов Мне нужны только пути и нужно привязать каждый из них в отдельном дочернем процессе.

import ConfigParser

    import os

def ConfigSectionMap(section):
    dict1 = {}
    options = Config.options(section)
    for option in options:
        try:
            dict1[option] = Config.get(section, option)
            if dict1[option] == -1:
                DebugPrint("skip: %s" % option)
        except:
            print("exception on %s!" % option)
            dict1[option] = None
    return dict1

Config = ConfigParser.ConfigParser()
Config.read("/etc/harvest.conf")
print Config.sections()
print ConfigSectionMap("files")

Пример файла конфигурации:

[section1] host_prefix = true

timestamp_prefix = true

[section2] хост = localhost

порт = 1463

pids = / var / run / harvester

[файлы] apache.access = /var/log/apache2/access.log

apache.errors = /var/log/apache2/errors.log

mail = / var / log / mail.log

mysql.log = /var/log/mysql.log

mysql.err = /var/log/mysql.err

syslog.err = / var /log / syslog.err

1 Ответ

1 голос
/ 20 декабря 2011

Поскольку tail принимает несколько файлов, вы можете положиться на него:

from ConfigParser import ConfigParser
from subprocess import Popen

config = ConfigParser()
config.read('/etc/harvest.conf')
filenames = [value for name, value in config.items('files')]

process = Popen(['tail', '-f'] + filenames)
process.communicate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...