是的,我可以在jenkins中启动一个守护程序。但是如何重新启动守护程序? @视窗

时间:2019-06-20 08:19:28

标签: jenkins

在Jenkins中,我使用Execute Windows批处理命令开始工作

  set BUILD_ID=DONTKILLME
  start cmd /k python Run.py

名称为“ python.exe”的守护程序。 如何重新启动守护程序?

或者可以为其他解决方案提供帮助。.谢谢

1 个答案:

答案 0 :(得分:0)

如果我们不能对启动的命令做任何假设,那么我们只能终止该进程并重新启动它。可以使用Powershell 6中提供的Stop-Process命令或其他Python脚本来终止进程。

但是,如果按名称杀死进程,则可能会有杀死错误的python脚本的风险。一种更安全的方法需要启动的脚本进行一些合作。例如,脚本可以使用os.getpid()获取其进程ID,并将其写入启动时的某个已知文件位置。然后,kill脚本可以读取此信息并使用正确的ID杀死进程。

另一种解决方案是让脚本监听需要停止的某种信号,例如通过侦听套接字,侦听命名管道或检查文件系统是否存在某种情况。

另一个选择是implement the script as a Windows Service。然后,您可以使用Powershell命令Stop-ServiceStart-Service