我安装了带有 systemd 的 ArchLinux。我试图在安装加密数据设备后立即运行一个钩子,以便将 flashcache 放在其顶部。我有可以工作的脚本,但是我无法让它们按正确的顺序加载。这就是我所做的:
文件:/usr/lib/systemd/system/flashcache.service
[Unit]
Description=FlashCache
[email protected]
[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/local/bin/flashcache_startup_script
[Install]
WantedBy=dev-mapper-data_cached.device
创建文件后,我运行了systemctl enable flashcache.service
.
但是,启动时它不会启动,dev-mapper-data_cached 超时,之后我可以进入 root shell 并flashcache_startup_script
手动运行。
我检查了 的输出journalctl -b
,并确定 FlashCache 服务在超时发生之前不会加载。
我尝试过但没有成功的另一个选择是Requires=dev-mapper-vg1-data.device
我究竟做错了什么?
答案1
我尝试了各种方法,主要是使用以下资源。我不太确定它为何有效,但以下单元文件解决了该问题:
[Unit]
Description=FlashCache
BindsTo=dev-vg1-data.device
After=dev-vg1-data.device
DefaultDependencies=no
[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/local/bin/flashcache_startup_script
[Install]
WantedBy=sysinit.target