HEX
Server: Apache/2.4.68 (codeit) OpenSSL/4.0.1
System: Linux societies-web 5.4.17-2136.353.3.el8uek.x86_64 #3 SMP Thu Feb 12 09:46:56 PST 2026 x86_64
User: yles (1028)
PHP: 8.3.31
Disabled: exec,shell_exec,passthru,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,symlink,pcntl_exec
Upload Files
File: //sbin/abrt-harvest-pstoreoops
#!/usr/libexec/platform-python
#
# This script is meant to be run once at system startup
# It scans /sys/fs/pstore/*, reconstructs oops text(s)
# from these files, creates ABRT problem directories from them,
# then removes the files (UEFI storage is a limited resource).
#

import os
import sys
from subprocess import Popen

if __name__ == "__main__":
    # need to allow setting the pstore oops storage dir
    # to make this script testable
    pstoredir = "/sys/fs/pstore"
    dryrun = False

    for arg in sys.argv:
        if arg == "dryrun":
            dryrun = True
            continue

        if arg.startswith("--pstoredir"):
            pstoredir = arg.split('=')[1]

    try:
        os.chdir(pstoredir)
    except OSError as ex:
        # silently ignore if the pstore doesn't exist, because that usually
        # means that we're on the system where pstore boot is not supported
        sys.stderr.write("Can't chdir to {0}: {1}".format(pstoredir, ex))
        sys.exit(0)

    merge_status = Popen(
            ["-c", "abrt-merge-pstoreoops -o * | abrt-dump-oops {0}"
            .format("-o" if dryrun else "-D")],
            shell=True,
            bufsize=-1
        ).wait()
    if merge_status == 0:
        Popen(["abrt-merge-pstoreoops -d *"], shell=True, bufsize=-1)
    else:
        sys.stderr.write("Failed to merge pstore oops")