初始化脚本在服务重启时运行重叠的服务器

我怎么能创build一个启动脚本,启动(和跟踪)新的过程之前,旧的完全终止在重新启动?

我正在开发一个需要能够正常重启的node.js服务,例如在部署新版本时。 问题是在服务过程完全closures之前,服务有一些需要完成的长时间运行的任务,而新的过程应立即启动。

通常,在开发服务时,我会创build一个简单的upstart-init-script作为非特权用户启动一个服务,以相同的非特权用户身份运行deploy,并在deploy脚本的末尾发送一个SIGINT来closures服务。 那么Upstart会检测到服务已经终止,并从新部署的代码重新启动。

这一次虽然服务可能需要多达一个小时才能在收到SIGINT后closures,因此我需要同时运行几个进程,我不认为新贵是为此而devise的。

我想我可以跳过新贵,只是启动部署脚本中的新进程,并将其分离,但这意味着我将失去新贵提供的自动启动/重新启动/启动/停止function,所以我不想这样做。