![在另一个单元变为非活动状态后启动一个单元](https://linux22.com/image/40546/%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%8D%95%E5%85%83%E5%8F%98%E4%B8%BA%E9%9D%9E%E6%B4%BB%E5%8A%A8%E7%8A%B6%E6%80%81%E5%90%8E%E5%90%AF%E5%8A%A8%E4%B8%80%E4%B8%AA%E5%8D%95%E5%85%83.png)
一旦另一个单元变为非活动状态,是否有任何方法可以延迟一个单元的启动?我有一个启动进程 (oneshot.service),它作为一次性运行并设置环境供所有其他进程使用,然后退出(这使服务报告处于非活动状态)。
但是,我想等到该过程完成后再启动所有其他过程。我希望有某种类型的信号或其他服务文件可以排队的东西。使用“After=oneshot.service”不会产生我想要的结果,因为它会在 oneshot.service 完成之前启动其他进程。
一个更实际的示例是让 SNMPD 子代理延迟其启动,直到 SNMPD 代理启动并运行之后...否则,代理和子代理之间不会进行通信,除非您在 SNMPD 代理启动后未知的时间启动子代理。
答案1
你有没有尝试过RemainAfterExit=yes
你的oneshot.service
服务吗?
这样该服务仍将标记为活动状态