我目前有一个Makefile规则:
start:
./start.sh
Run Code Online (Sandbox Code Playgroud)
这将启动一个非常简单的服务器作为构建过程的一部分.我有另一个停止服务器的规则:
stop:
kill `cat bin/server.PID`
Run Code Online (Sandbox Code Playgroud)
这是start.sh脚本:
#!/bin/bash
cd bin
python server.py &
echo $! > server.PID
Run Code Online (Sandbox Code Playgroud)
必须从bin目录中运行NB server.py
我想在启动规则中实现start.sh的功能,我尝试了很多东西,但似乎无法获得PID.
rei*_*ost 25
我不明白你被困在哪里.怎么了?
start:
cd bin && { python server.py & echo $$! > server.PID; }
Run Code Online (Sandbox Code Playgroud)
?
您还可以将pidfile设为目标和依赖项:
start: server.PID
server.PID:
cd bin && { python server.py & echo $$! > $@; }
stop: server.PID
kill `cat $<` && rm $<
.PHONY: start stop
Run Code Online (Sandbox Code Playgroud)