背景:我尝试在“文本”安装期间在虚拟机上的 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
信息@:
- A.3。 Kickstart 文件中的脚本
- A.3.1。 %预脚本