Centos
等待 systemd oneshot 服務完成
我正在做一些伺服器配置,我需要在安裝後執行一個腳本,因為它要求系統功能齊全,包括服務。所以我不能把它放在
%post
我的 kickstart 文件的部分。相反,我創建了一個 systemd 服務,該服務將自己禁用為它所做的最後一件事。
[Unit] Description=Prepare the system after installation [Service] Type=oneshot ExecStart=/usr/bin/prepare-system [Install] WantedBy=multi-user.target
問題是在第一次啟動期間,我進入登錄提示,甚至可以登錄並開始使用系統,而“首次啟動腳本”仍在執行。
這給了設置系統的管理員一種系統已經完成的錯覺,而實際上並沒有。
相反,我希望服務延遲啟動,最好顯示一條消息,如“系統正在準備中,請稍候……”並在那裡等到腳本完成。
只需設置
Before
為終端可用時:[Unit] Description=Prepare the system after installation Before=getty@tty1.service getty@tty2.service getty@rrt3.service getty@tty4.service getty@tty5.service getty@tty6.service [Service] Type=oneshot ExecStart=/usr/bin/prepare-system [Install] WantedBy=multi-user.target
假設您使用 GDM 作為登錄管理器,請
Before=gdm.service
在該[Unit]
部分添加一行。如果您不使用 gdm,請找出啟動 xorg 的服務並將其放在
Before=
行中。這將導致任務在登錄管理器顯示之前完成。