Kanjut SHELL
Server IP : 172.16.15.8  /  Your IP : 3.144.115.125
Web Server : Apache
System : Linux zeus.vwu.edu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Wed Nov 6 14:29:02 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 7.2.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0555) :  /usr/sbin/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/sbin/setroubleshootd
#! /usr/libexec/platform-python -Es
# -*- mode: Python; -*-
#
# Authors: John Dennis <jdennis@redhat.com>
#          Dan Walsh <dwalsh@redhat.com>
#
# Copyright (C) 2006,2007,2008,2009 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
from __future__ import print_function
from six.moves.builtins import str

import sys
if sys.version_info < (3,):
    import setroubleshoot.default_encoding_utf8

import selinux
import os
import getopt
import syslog
from setroubleshoot.config import parse_config_setting, get_config
from setroubleshoot.util import log_debug
import gettext
gettext.install(domain=get_config('general', 'i18n_text_domain'),
                localedir=get_config('general', 'i18n_locale_dir'))

pkg_name = get_config('general', 'pkg_name')
syslog.openlog(pkg_name)


def usage():
    print('''
-f --nofork				no fork
-d --debug				debug
-c --config section.option=value	set a configuration value
-h --help				display help info
''')

fork = True
timeout = 10

try:
    opts, args = getopt.getopt(sys.argv[1:], "dfc:h", ["debug", "nofork", "config=", "help"])
except getopt.GetoptError:
    # print help information and exit:
    usage()
    sys.exit(2)

for o, a in opts:
    if o in ("-h", "--help"):
        usage()
        sys.exit()

    if o in ("-f", "--nofork"):
        fork = False

    if o in ("-d", "--debug"):
        timeout = 0

    if o in ("-c", "--config"):
        config_setting = a
        if not parse_config_setting(config_setting):
            syslog.syslog(syslog.LOG_ERR, "could not parse config setting '%s'", config_setting)

if not selinux.is_selinux_enabled():
    syslog.syslog(syslog.LOG_ERR, _("SELinux not enabled, setroubleshootd exiting..."))
    sys.exit(3)

import dbus.service
import dbus

try:
    if fork:
        # do the UNIX double-fork magic, see Stevens' "Advanced
        # Programming in the UNIX Environment" for details (ISBN 0201563177)
        pid = os.fork()
        if pid > 0:
            # exit first parent
            sys.exit(0)

        # decouple from parent environment
        os.chdir("/")
        os.setsid()
        os.umask(os.umask(0o077) | 0o022)

        # write the pid file
        pid_file = get_config('general', 'pid_file')
        f = open(pid_file, "w")
        f.write(str(os.getpid()))
        f.close()

    from setroubleshoot.server import RunFaultServer
    log_debug("RunFaultServer(%d)" % timeout)

    RunFaultServer(timeout)

except OSError as e:
    print(_("fork #1 failed: %d (%s)") % (e.errno, e.strerror), file=sys.stderr)
    sys.exit(1)
except dbus.DBusException as e:
    syslog.syslog(syslog.LOG_ERR, str(e))
    print(e, file=sys.stderr)
    sys.exit(1)
except IOError as e:
    syslog.syslog(syslog.LOG_ERR, str(e))
    print(e, file=sys.stderr)
    sys.exit(1)

Stv3n404 - 2023