如何通过服务(/etc/init/*.conf)文件运行多个程序

如何通过服务(/etc/init/*.conf)文件运行多个程序

我的服务是一个名为 /opt/mcp/rpe 的可执行文件,它要求运行第二个可执行文件,名为 /opt/mcp/McpVp。

在我的配置文件:/etc/init/mcp.conf 中我有:

description "Run MCP"

start on runlevel [2345]
stop on runlevel [016]

script
        # Start the RPE application
        /opt/mcp/rpe -d f -c /opt/mcp
        # Start the McpVp application
        /opt/mcp/McpVp &> /var/tmp/mcp.log
end script

当我使用以下命令运行此脚本时:sudo start mcp我看到 rpe 可执行文件启动,但 McpVp 没有启动。我还尝试在后台模式下运行这两个脚本,但这似乎也不起作用,更糟糕的是,当我尝试停止脚本时,它找不到“实例”——我猜是因为它在后台丢失了。

那么,有没有办法运行 2 个(或更多)进程,以便它与启动和停止命令一起工作?(即sudo start mcpsudo stop mcp

我知道还有其他方法可以解决这个问题,但我特别想知道是否可以使用 .conf 文件来解决这个问题。

答案1

你可以相对轻松地将配置拆分为 2 个配置,每个配置都有一个可执行文件,并且它们之间存在依赖关系。然后,当你 时start mcp,它也会自动启动 mcp2,当你 时stop mcp,它也会自动停止 mcp2。以下是文件:

#----/etc/init/mcp.conf
description "Run MCP"
start on runlevel [2345]
stop on runlevel [016]
# Start the RPE application
exec /opt/mcp/rpe -d f -c /opt/mcp

#----/etc/init/mcp2.conf
description "Run MCP 2"
start on starting mcp
stop on stopped mcp
# Start the McpVp application
exec /opt/mcp/McpVp &> /var/tmp/mcp.log

相关内容