킥스타트 파일의 %pre 섹션에 있는 스크립트를 디버깅하는 방법

킥스타트 파일의 %pre 섹션에 있는 스크립트를 디버깅하는 방법

배경:"텍스트" 설치 중에 가상 머신에 있는 kickstart 파일의 %pre 섹션에서 이 스크립트를 실행해 보았습니다.

import os,sys,gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class DisplayMenu():
    """ Create the main configuration window """
    def __init__(self):
        self.window = Gtk.Window()
        self.window.set_border_width(10)
        self.window.set_default_size(800, 600)
        self.window.connect("destroy", Gtk.main_quit)
        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.window.add(vbox)
        hb = Gtk.HeaderBar()
        hb.set_show_close_button(True)
        hb.set_decoration_layout(":close")
        hb.set_title("Title")
        hb.set_subtitle("subtitle")
        vbox.pack_start(hb, False, False, 0)
        label = Gtk.Label()
        vbox.pack_start(label, False, False, 0)

#        hbox = Gtk.Box()
#        label = Gtk.Label("Hostname: ")
#        hbox.pack_start(label, False, False, 0)
#        self.hostname = Gtk.Entry()
#        self.hostname.set_width_chars(30)
#        if os.environ['HOSTNAME'] != '':
#            self.hostname.set_text(os.environ['HOSTNAME'])
#        else:
#            self.hostname.set_text('localhost.localdomain')
#        hbox.pack_start(self.hostname, False, False, 0)
#        vbox.pack_start(hbox, False, False, 0)

        self.window.show_all()

if __name__ == "__main__":
    WIN = DisplayMenu()
    Gtk.main()

"있는 그대로" 실행하면 작동합니다. ("작업 중"이란 창을 표시하고 닫기 아이콘을 클릭할 때까지 설치 프로세스를 중지한다는 의미입니다.) 다른 명령에서 "#"을 제거하면 작동이 중지됩니다. 창을 표시하지 않고 설치를 계속합니다. 그러나 GUI가 설치된 rhel8 서버에서는 스크립트가 예상대로 작동합니다.

내 문제는 설치 중에 디버깅하는 방법을 모른다는 것입니다.

다음은 %pre 스크립트입니다:

/usr/bin/Xorg  :0 &
/usr/bin/metacity --display :0 --sm-disable &
export DISPLAY=:0
/usr/libexec/platform-python /run/install/repo/scripts/menu.py
unset DISPLAY
killall metacity
killall Xorg

질문:오류가 표시되지 않으므로(제가 볼 수 있는) 설치 중에 어떻게 디버깅할 수 있습니까? "ALT-F2"를 사용하여 다른 콘솔로 전환하고 Xorg 명령을 입력하면 화면이 꺼지고 다른 명령을 입력할 수 없는 것 같습니다.

답변1

가상 콘솔 중 하나에 설치 로그가 표시되는데 Ctrl+Alt+F3을 누르면 %pre의 진행 상황이 표시되는 것 같습니다.

또는 %pre --log=/root/preinstall.log로깅을 위해.

당신은 또한 사용할 수 있습니다%pre --erroronfail

자세한 정보 및 옵션은 다음을 참조하세요. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/performing_an_advanced_rhel_8_installation/index

정보@:

-A.3. Kickstart 파일의 스크립트

- A.3.1. %규정

관련 정보