启动和停止服务器脚本

时间:2012-09-21 19:33:43

标签: python bash jmeter

我一直在构建一个性能测试套件来运行服务器。现在我手动运行它,但我想自动化它。在目标服务器上,我运行一个python脚本,记录服务器指标并在我按Enter键时暂停。在测试器机器上,我运行一个bash脚本,它迭代JMeter测试,设置时间戳和命名日志并执行测试。

我想将这些绑定在一起,以便bash脚本驱动整个过程,但我不确定如何最好地执行此操作。我可以通过ssh启动我的python脚本,但是如何在测试完成后暂停它?如果我可以在ssh中完成,那么我不需要弄乱现有的配置,这是一个很大的胜利。 python脚本非常简单,如果有帮助,我不介意重写它。

1 个答案:

答案 0 :(得分:1)

最简单的解决方案可能是让Python脚本响应信号。当然,如果脚本不需要任何清理,您可以只使用SIGKILL脚本,但让脚本实际处理关闭请求似乎更清晰。 SIGHUP可能是一个受欢迎的选择。文档here

您可以使用kill命令发送信号,以便通过ssh发送信号没有问题,前提是您知道脚本的pid。这个问题的通常解决方案是在启动脚本时将pid放在/ var / run中的文件中。 (如果你有一个Debian / Ubuntu系统,你可能会发现你有start-stop-daemon实用程序,这将在这里做很多繁重的工作。)

另一种代码密集程度更高的方法是在某个已知位置创建一个fifo(命名管道),并且使用它基本上就像你当前正在使用stdin一样:服务器等待来自管道的输入,并且当它获得它识别为命令的东西时,它执行命令(例如,“退出”)。这可能对你的目的来说有点过分,但它的优点是成为一个更明确的沟通渠道,而不是单一的锤击。