读取和睡眠(使用openvt -w
)都被执行(read -p
显示消息),但无法暂停启动。
我尝试了多种选项的组合/etc/systemd/system/<service>
:
Type=oneshot
TimeoutSec=5000
StandardInput=tty
用例仅在服务脚本停止运行后加载 GUI。我需要在 GUI 加载之前将 sshfs (还有多个用户和主机名选项)安装为 /home 并将“冻结”/home 作为本地分区(默认)。
答案1
“暂停启动”并不完全适用于 systemd; systemd 并行运行多个服务。
但是,通过向服务添加“依赖项”,您基本上可以指定“启动应暂停”并等待您的服务的时间点。
对于上面的用例,添加到/etc/systemd/system/<service>
:
[Unit]
Description=commands to run before GUI loads
Before=display-manager.service
这将迫使display-manager.service
等待<service>
。就我而言,<service>
涉及用户输入(对于那些没有获得连接的读者),有效地“暂停启动”。
下面还有其他评论者表达怀疑的评论:
此类事情有一个用例 - 解锁加密分区。由于 systemd 中的错误 (bugs.freedesktop.org/show_bug.cgi?id=88483),无法在启动期间使用开箱即用的 systemd 机制解锁加密的多设备 Btrfs 阵列。您需要创建自己的 systemd 服务文件,经过数小时的尝试,这个答案在我的服务文件中缺少了我需要的部分。谢谢阿格尔。