在 node.js 脚本中通过 wine 调用 运行 的程序冻结
Program called to run via wine within a node.js script freezes
在 node.js 脚本中通过 wine 调用 运行 的程序在开始执行任务时立即冻结。
这是 top
输出:
它 运行 没问题,如果我不带参数调用它,它会显示 cli 的 header。
但是如果将它与参数一起使用,它会在开始显示进度和连续标准输出时立即挂起(例如:屏幕上唯一更新的是当前任务的百分比)
尝试使用 exec
、execSync
、spawnSync
、spawn
。
还尝试 spawn
和 spawnSync
调用它的 .sh 文件(有和没有 &
disown
)
我认为这与某些 child_process 甚至环境限制有关,因为我能够通过从带有参数的新 gnome-terminal 调用 wine 来做到这一点。但是后来我弹出了一个额外的终端window,并且无法控制任务的结束。
有人对此有解决方案或解决方法吗?
与stdio
有关
不知道为什么,但是设置
{stdio: ['inherit', 'pipe', 'pipe']}
到 .spawn()
对于 Ubuntu 和 OSX 成功了。
在 node.js 脚本中通过 wine 调用 运行 的程序在开始执行任务时立即冻结。
这是 top
输出:
它 运行 没问题,如果我不带参数调用它,它会显示 cli 的 header。
但是如果将它与参数一起使用,它会在开始显示进度和连续标准输出时立即挂起(例如:屏幕上唯一更新的是当前任务的百分比)
尝试使用 exec
、execSync
、spawnSync
、spawn
。
还尝试 spawn
和 spawnSync
调用它的 .sh 文件(有和没有 &
disown
)
我认为这与某些 child_process 甚至环境限制有关,因为我能够通过从带有参数的新 gnome-terminal 调用 wine 来做到这一点。但是后来我弹出了一个额外的终端window,并且无法控制任务的结束。
有人对此有解决方案或解决方法吗?
与stdio
不知道为什么,但是设置
{stdio: ['inherit', 'pipe', 'pipe']}
到 .spawn()
对于 Ubuntu 和 OSX 成功了。