如何使用bash脚本重新启动在屏幕内运行的python脚本?

时间:2016-03-31 20:31:59

标签: python linux git bash shell

好的,这是我的情况:

在服务器上,我有一个屏幕会话(使用screen -S python-script启动),在其中运行python脚本。

我通过推送到git repo来对这个项目进行更改。当我想要在项目中反映出更改时,我会进入服务器screen -x python-script,然后按Ctrl-c发送键盘中断,然后git pull origin master然后./run_script.py

我想做一些聪明的事情,让我的项目能够更新并重新启动。另一个小的python服务器将驻留在这个远程服务器上并监听我的项目的请求,然后这个python服务器将使用subprocess来运行一个bash脚本,它将更新并重新启动我的项目。

我知道这有点令人费解,如果有更好的方式去做我想要的事情,我真的很喜欢一些建议。

现在如果我可以制定一个bash脚本来做我正在寻找的东西,那么我知道这会起作用(可能......)。

1 个答案:

答案 0 :(得分:2)

1)如果您对输出感兴趣,请使用nohup代替屏幕,将标准输出重定向到旋转日志。将PID存储在某处。

2)设置部署'你的回购分支。

3)在服务器上设置cronjob以进行部署'分支每x分钟。

4)每次在您的部署中提交新的提交时,请使用githook来触发启动/停止。科。使用存储的pid来杀死它。

编辑:

如果您需要通过Ctrl + C进行杀戮,只需发送SIGINT并使用kill wait发送pid即可。