Я пытаюсь подключиться к процессу, запущенному на удаленной машине. Я использовал ssh2 для подключения к машине удаления. Теперь я пытаюсь подключиться к процессу, запущенному на машине. Название процесса: dd_servicescОшибка соединения сокета NodeJs
c.exec('OmneBabble dd_servicesc',function(){}
Я использовал приведенную выше команду кода для подключения к процессу. При подключении я хочу выполнить серию подключений. Но в настоящее время проблема заключается в том, что если я снова использую c.exec, следующая команда выполняет часть процесса и, следовательно, возвращает разрешение. Для того чтобы лучше понять, пожалуйста, проверьте ниже
OmneBabble dd_servicesc
>0 1 om_get_user_info 31003 1 MACLEAN1-11365
Здесь начальная команда является OmneBabble dd_servicesc, в течение которого нужно 0 1 om_get_user_info 31003 1 MACLEAN1-11365 для выполнения. Пожалуйста, укажите любые ссылки, которые я могу найти, чтобы найти решение этой проблемы.
С уважением,
Маклин
Update
function ssh()
{
var Connection = require('ssh2');
var c = new Connection();
c.on('connect', function() {
console.log('Connection :: connect');
});
c.on('ready', function() {
console.log('Connection :: ready');
c.exec('OmneBabble dd_servicesc', function(err, stream) {
if (err) throw err;
stream.on('data', function(data, extended) {
console.log((extended === 'stderr' ? 'STDERR: ' : 'STDOUT: ')
+ data);
});
stream.on('end', function() {
console.log('Stream :: EOF');
});
stream.on('close', function() {
console.log('Stream :: close');
});
stream.on('exit', function(code, signal) {
console.log('Stream :: exit :: code: ' + code + ', signal: ' + signal);
c.end();
});
});
c.exec('0 1 om_get_user_info 31003 1 MACLEAN1-11365', function(err, stream) {
if (err) throw err;
stream.on('data', function(data, extended) {
console.log((extended === 'stderr' ? 'STDERR: ' : 'STDOUT: ')
+ data);
});
stream.on('end', function() {
console.log('Stream :: EOF');
});
stream.on('close', function() {
console.log('Stream :: close');
});
stream.on('exit', function(code, signal) {
console.log('Stream :: exit :: code: ' + code + ', signal: ' + signal);
c.end();
});
});
});
c.on('error', function(err) {
console.log('Connection :: error :: ' + err);
});
c.on('end', function() {
console.log('Connection :: end');
});
c.on('close', function(had_error) {
console.log('Connection :: close');
});
c.connect({
host: '192.168.20.204',
port: 22,
username: 'oaa',
password: 'marigold'
});
}
exports.ssh = ssh;
Update: Вот OmneBabble dd_services, которые делают подключение к розетке т.е.> dd_services.
После этого мы опубликуем запрос на сокет с использованием 0 1 om_get_user_info 31003 1 MACLEAN1-11365
сокета будет затем опубликовать запрос ко всему его клиентскому процессу. Наконец, клиентский процесс, который принимает запрос, будет отвечать выходом. SO i не могу использовать дочерний процесс для сопоставления вывода родительского процесса с дочерним.
HI, я добавил код на свой вопрос вы можете сказать мне, как добавить дочерний процесс spwan здесь. - –
Я обновил свой ответ, чтобы отразить новый код. Я полагаю, что ваша проблема в том, что 'OmneBabble dd_servicesc' (я не знаю об этой команде) предоставляет среду, похожую на REPL, в которой идет ваша вторая команда. Если 'ssh2' не предоставляет интерактивный интерфейс клавиатуры, вам нужно будет выяснить, как запустить ваши две команды, не входя в CLI OmneBabble (возможно, через трубопровод, как указано выше, или отправку ввода через stdin?). –
Привет, dd_Services - это сокет. В вашем ответе вы выставляете трубку вывод dd_servies на 0 1 om_get_user_info, который является запросом на сокет. Это не имеет смысла. –