首先介绍大体私聊,就是服务启动的时候获取pid并写入一个文件记录,保证文件可以重新覆盖即可
大致三个shell例子
启动脚本
#!/bin/sh
nohup ./CapitalUpdate >> logs/CapitalUpdate.log &
nohup ./changeOrderexec >> logs/changeOrderexec.log &
nohup ./clinch_deal_order >> logs/clinch_deal_order.log &
nohup ./financialexec >> logs/financialexec.log &
nohup ./HandicapMarket >> logs/HandicapMarket.log &
nohup ./klineexec >> logs/klineexec.log &
nohup ./marketexec >> logs/marketexec.log &
nohup ./match >> logs/match.log &
stop.sh
#!/bin/sh
cat pids/CapitalUpdate.pid | xargs kill -INT
cat pids/changeOrderexec.pid | xargs kill -INT
cat pids/clinch_deal_order.pid | xargs kill -INT
cat pids/financialexec.pid | xargs kill -INT
cat pids/HandicapMarket.pid | xargs kill -INT
cat pids/klineexec.pid | xargs kill -INT
cat pids/marketexec.pid | xargs kill -INT
cat pids/match.pid | xargs kill -INT
restart.sh
#!/bin/sh
sh stop.sh
sh start.sh
最后说一下go版本的记录pid的代码
dir, _ := filepath.Abs(`.`)
err = ioutil.WriteFile(dir+"/pids/financialexec.pid", []byte(strconv.Itoa(os.Getpid())), 0644)
if err != nil {
panic(err)
}