检查makefile中的进程

检查makefile中的进程,makefile,Makefile,全部, 我目前有一个makefile,其中包含以下代码: .PHONY: start-server start-checker kill-server kill-server: -pkill -f 'python3 start_server_host.py' start-server: nohup python3 start_server_host.py >> server.out 2>&1 & start-checker: nohu

全部,

我目前有一个makefile,其中包含以下代码:

.PHONY: start-server start-checker kill-server
kill-server:
    -pkill -f 'python3 start_server_host.py'

start-server:
    nohup python3 start_server_host.py >> server.out 2>&1 &

start-checker:
    nohup python3 checker.py ${ARGS} test >> checker.out 2>&1 &
start checker
需要
start server
在那里。我正在努力想办法做一些事情,比如:

start-checker:
   if not process start_server_host.py
     then start-server
   nohup python3 checker.py ${ARGS} test >> checker.out 2>&1 &

目标是在未执行此操作时启动
启动服务器
,以避免执行此手动操作

我强烈建议不要将makefiles用于系统管理任务。我理解它的明显优势(用于参数处理的最小样板代码)是甜蜜的。但我向你保证,它迟早会咬你的

回答您的问题:修改
检查服务器
以依赖
启动服务器
。修改
start server
以创建名为
start server
的文件。修改
kill server
以删除文件
start server

现在,如果执行
makestart server
操作,服务器将启动,并将创建一个名为
start server
的文件。如果执行
检查服务器
,并且文件
启动服务器
存在,它将不会调用
启动服务器
。如果执行
makekill server
操作,则文件
start server
将被删除。如果再次执行
检查服务器
,则文件
启动服务器
将丢失,并且将首先调用
启动服务器

当服务器崩溃并且文件
start server
未被删除时会发生什么情况?这就是这个makefile系统管理员黑客会来咬你的时候

我再次强烈建议不要将makefile用于系统管理任务。作为对一个类似问题的回答,我写了更详细的内容:

为什么不:1)检查服务器是否正在运行,如果没有,在
启动服务器
配方中启动它,2)声明
启动服务器
启动检查器
的先决条件?