是否可以用任何其他文件替换 stdin 文件?

Is it possible to replace stdin file with any other file?

我有一个将使用 nohup 启动的 nodejs 服务器。所以基本上它不会有标准输入。

我已经为我的 nodejs 服务器创建了守护进程,它执行所有启动停止重启状态功能。

但我不想立即停止 nodejs 服务器。我想在完成某些任务后停止它。所以我必须向服务器的标准输入发送命令。这样关闭将由服务器本身控制。是的,我可以通过创建 API 来做到这一点。但这是我最后的选择。

是的,我的服务器从 stdin 获取输入并且运行良好。但是使用 nohup 我不会有标准输入,因此在那种情况下无法输入命令。

所以我的问题是,如果有办法让我可以将标准输入更改为其他文件,我的服务器将以与标准输入相同的方式从中获取输入。

如果您在 Linux 或 Mac 中,您可以向您的服务器进程发送信号。在 Windows 中你也可以,但我不知道命令。

例如,如果您想重新加载服务器,您可以这样做

kill -s SIGUSR2 processId

并且在您的服务器中

process.on('SIGUSR2', function() {
    console.log('Got SIGUSR2, reloading server...');
});