如何解决如何从 node.js pm2 运行 ConPTY 终端?
在 node.js 中,我使用 PTY 终端来运行 shell 并捕获其输出文本。像这样
const pty = require('node-pty');
const AnsiTerminal = require('node-ansiterminal').AnsiTerminal;
const AnsiParser = require('node-ansiparser');
const Convert = require('ansi-to-html');
const shell = ptyProcess = pty.spawn('powershell.exe',['-executionpolicy','remotesigned','-File','test.ps1'],{ name: 'test',cols: terminal_columns,rows: 30,cwd: __dirname,env: process.env });
var convert = new Convert({
newline:true
});
const terminal_columns = 160;
var terminal = new AnsiTerminal(terminal_columns,30,500);
var parser = new AnsiParser(terminal);
ptyProcess.onData((data) => {
const msg = data.toString();
parser.parse(msg);
const str = terminal.toString().trim() + "\n\n";
var html_str = convert.toHtml(str);
});
ptyProcess.onExit(function(data) {
// exit event
});
当我在 powershell 终端上手动启动节点程序时,它工作正常。但是如果我用pm2启动node程序就报错
Cannot create process,error code: 267
但是如果我创建一个像 powershell.exe
这样的普通 shell 而不是 PTY 一个,它就可以正常工作。
如何让 pm2 与 PTY 一起工作?
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。