如何在 systemd 启动期间最后运行并打印我的脚本输出?
Posted
技术标签:
【中文标题】如何在 systemd 启动期间最后运行并打印我的脚本输出?【英文标题】:How to run last and print my script output during boot with systemd? 【发布时间】:2014-12-16 00:07:33 【问题描述】:我正在尝试在部署过程中配置我的主机,并在屏幕上显示我的配置脚本正在执行的操作。
在 RHEL6 中,我很容易回显我想要筛选的内容或使用对话框来显示输出,并且只有在我的脚本完成后我才会得到登录提示。
(我使用脚本名称为 S99.myscript.sh 的 rc3.d 或 rc5.d 文件夹)在 RHEL7 中,我无法模仿这个过程。 rc.local 在启动过程中不显示我的输出,也不保证它会最后运行。
我想我需要创建一个 systemd 服务文件来运行我的脚本。
但是如何在启动时将结果输出到屏幕上呢?
我如何确保在脚本结束之前不会收到登录提示?
【问题讨论】:
【参考方案1】:下面的服务示例就像一个魅力:)
[Unit]
Description=ldt_bootscript1.service
After=network.target
Before=getty@tty1.service
[Service]
Type=oneshot
ExecStart=/bin/bash -c "/bin/bash /tmp/ldt_scripts/postinstall/rc.firstboot.qas | /usr/bin/dialog --clear --backtitle \"Linux Deployment\" --title \"tests\" --progressbox 20 70 > /dev/console 2>&1"
ExecStartPre=/usr/bin/echo -e \033%G
ExecReload=/bin/kill -HUP $MAINPID
RemainAfterExit=no
WorkingDirectory=/
Environment=TERM=xterm
[Install]
WantedBy=multi-user.target
【讨论】:
以上是关于如何在 systemd 启动期间最后运行并打印我的脚本输出?的主要内容,如果未能解决你的问题,请参考以下文章