gpt4 book ai didi

linux - 带有参数的 systemd 问题的 Init.d 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:17 26 4
gpt4 key购买 nike

我正在尝试将名为“myService”的 init.d 脚本升级到 systemd。init.d 脚本有 1 个决定要做什么的参数,具有以下切换情况:

case "$choice" in 
"start")
# starts service logic here
"stop")
# stops service logic here
"filter")
# runs some .sh file from our PC
esac

为了升级到 systemd,我在 systemd 中创建了 myService.service 文件,并在 ExecuteStart 和 ExecuteStop 文件的属性中设置以执行参数为 start 或 stop 的 init.d 文件,现在我可以这样做:systemctl start myService.service,但是如果我想调用 filter 选项,则不允许我执行 systemctl filter myService。服务,因为“过滤器”不是 systemctl 的有效选项。有什么建议可以解决这个问题吗?

最佳答案

此方案不适合 systemd作为服务经理的职责,例如(但不限于):

  • 运行服务(例如启动、停止等)
  • 上面的配置(例如在哪个系统级别运行)
  • 提供有关服务状态的信息
  • 声明各种服务之间的依赖关系和处理

虽然您没有提供有关服务实现的信息,但 filter 模式似乎是应用程序/服务器特定的操作。此外,它没有清楚地描述当服务停止和发出 filter 时会发生什么。

因此,牢记关注点分离,我建议使用 systemd 来控制服务的启动和停止,但使用任何 IPC(D-Bussocketssignals 等)服务用于触发 filter 操作。

关于linux - 带有参数的 systemd 问题的 Init.d 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52137121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com