كيفية بث مباشر الإخراج من البرنامج النصي روبي باستخدام عملية الطفل.تفرخ

StackOverflow https://stackoverflow.com//questions/23001033

  •  20-12-2019
  •  | 
  •  

سؤال

مما أفهمه ، يجب أن ينجح هذا ، لكن لا حظ لي حتى الآن.نشر هذا السؤال على أمل أن أفعل شيئا سخيفا حقا.لدي:

أهلاً.الميزانية العادية

#!/usr/bin/env ruby

3.times do
  puts 'hello'
  sleep 1
end

الذيل.شبيبة

var cp = require('child_process');
var tail = cp.spawn('./hello.rb');

tail.stdout.pipe(process.stdout);

/* Also tried this: */
tail.stdout.on('data', function(data) {
  console.log(data.toString())
});

hello.rb قابل للتنفيذ.

عندما أركض node tail.js, ، تتم طباعة 3 مرحبا إلى ستدوت ، ولكن بعد, ، تكتمل الحلقة.يمكنك التحقق من ذلك عن طريق تغيير 3.times فقط loop لحلقة لا نهائية ورؤية أي شيء في stdout.حالة الحلقة اللانهائية هي في الواقع ما أحاول معرفة كيفية القيام به.

ماذا أفعل خطأ?

هل كانت مفيدة؟

المحلول

يجب أن تحاول إما إضافة $stdout.flush بعد الخاص بك puts أو عن طريق الإعداد $stdout.sync = true في بداية السيناريو روبي الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top