我有一个想要在启动时运行的脚本,当它运行时我希望它暂停启动过程。
我尝试过systemd服务
[Unit]
Description=setup script
Before=default.target
[Service]
Type=oneshot
ExecStart=/my/setup/script
[Install]
WantedBy=default.target
但这会继续启动过程,因此即使我的脚本尚未完成,图形桌面仍然会运行。
这可能与 systemd 有关吗?
我正在使用 Raspbian Jessie 在 Raspberry Pi 上运行此程序。
答案1
假设您使用 gdm 作为登录管理器,
[Unit]
Description=setup script
Before=gdm.service
[Service]
Type=oneshot
ExecStart=/my/setup/script
[Install]
如果您不使用 gdm,请找出哪个服务启动 xorg 并将其放入该Before=
行中。说明:有两个问题:1.在您的情况下default.target
可能是指向graphical.target的符号链接。 soWants=default.target
表示应该在图形目标之后启动 2.Before=default.target
不起作用:目标用于在启动过程中的某些阶段启动时向 systemd 报告完成的开始,而不是当它们开始加载时。因此,只有当你想开始某件事时,使用目标才有意义后该目标之前尚未达到,或者如果您想确保仅在服务完成加载后才实现该目标。