我有一个通过 child_process.exec 执行命令的 nodejs 服务器。一个这样的命令重新启动节点实例(以及其他一些事情)。
该脚本执行以下操作:
- 杀死节点
- 杀死程序节点使用
- 清除日志
- 重启程序节点使用
- 重启节点
我知道这不是最好的方法,但我的双手被束缚了(这是一个已发布的软件版本,我们无法在下一个版本之前进行重组)。
发生的事情是,当我运行命令时,它会杀死节点,然后脚本的其余部分就会死掉。
该节点使用的默认 shell 是 sh,并且无法更改。
我有哪些选择?
服务器以root身份运行,因此不会有任何权限问题。我想我必须以某种方式启动一个新的外壳,但我不完全确定如何做到这一点。我想成功退出当前的 shell,但这不是必需的,只要我可以将整个脚本与当前的 shell 分开即可。