我的服务是一个名为 /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 mcp
和sudo 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