1、背景是
有三個腳本a.py, b.py, c.py
三個都是爬蟲,里面都是while(true)方式運行的,不會主動運行結(jié)束。
每次啟動他們,就需要:
python a.py > logs/a.log
python b.py > logs/b.log
python c.py > logs/c.log
2、上linux批處理:
有點麻煩,想搞個批處理:
#!/bin/sh
python a.py > logs/a.log
python b.py > logs/b.log
python c.py > logs/c.log
3、發(fā)現(xiàn)有問題
運行發(fā)現(xiàn)只有一個python進程,看日志發(fā)現(xiàn)只有a運行了,b和c都沒跑起來。
估計因為shell是順序執(zhí)行的,a沒執(zhí)行完,所以不會去執(zhí)行b和c,查了一下果然。
4、同時運行方案
不過shell也提供了一個同時運行多個命令的方式:&符號。
于是修改為:
#!/bin/sh
python a.py > logs/a.log & python b.py > logs/b.log & python c.py > logs/c.log
就可以同時運行三個腳本了。
5、再加工一下
再加工一下,啟動前先停止所有py進程:
#!/bin/sh
ps -ef | grep python | cut -c 9-15| xargs kill -s 9
python a.py > logs/a.log & python b.py > logs/b.log & python c.py > logs/c.log
保存為restart.sh
可執(zhí)行權(quán)限:chmod +x restart.sh
搞定。 作者:胡曉的簡書 鏈接:https://www.jianshu.com/p/0f72afb513ab 來源:簡書 簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。
|