আপনি স্টাডআউট এবং স্টডারকে পুনঃনির্দেশ না করা হিসাবে যদি না গৃহীত উত্তরের পরামর্শ দেয় তবে এক্সিকিউসসিঙ্ক বা স্পোনসিঙ্ক দিয়ে এটি সম্ভব নয়। Stdout এবং stderr কে পুনঃনির্দেশ না করে এই কমান্ডগুলি কেবল স্ট্যান্ডআউট এবং স্টডারকে ফিরে আসে যখন কমান্ডটি শেষ হয়।
স্টাডাউট এবং স্ট্ডারকে পুনর্নির্দেশ না করে এটি করতে, আপনাকে এটি করার জন্য স্পন ব্যবহার করতে হবে তবে এটি বেশ সোজা এগিয়ে রয়েছে:
var spawn = require('child_process').spawn;
//kick off process of listing files
var child = spawn('ls', ['-l', '/']);
//spit stdout to screen
child.stdout.on('data', function (data) { process.stdout.write(data.toString()); });
//spit stderr to screen
child.stderr.on('data', function (data) { process.stdout.write(data.toString()); });
child.on('close', function (code) {
console.log("Finished with code " + code);
});
আমি একটি এলএস কমান্ড ব্যবহার করেছি যা ফাইলগুলি পুনরাবৃত্তির সাথে তালিকাবদ্ধ করে যাতে আপনি এটি দ্রুত পরীক্ষা করতে পারেন। স্পন প্রথম আর্গুমেন্ট হিসাবে আপনি চালনার চেষ্টা করছেন এমন এক্সিকিউটেবল নাম হিসাবে গ্রহণ করে এবং এটি দ্বিতীয় যুক্তি হিসাবে এটি আপনি যে নির্বাহীটিতে যেতে চান তা প্রতিটি প্যারামিটারের প্রতিনিধিত্ব করে স্ট্রিংগুলির একটি অ্যারে লাগে।
তবে, যদি আপনি এক্সিকিউনসিঙ্ক ব্যবহার শুরু করে থাকেন এবং কোনও কারণে স্টডআউট বা স্ট্ডারকে পুনঃনির্দেশ করতে না পারেন, আপনি এক্সটারের মতো অন্য একটি টার্মিনাল খুলতে পারেন এবং এটির মতো একটি কমান্ড পাস করতে পারেন:
var execSync = require('child_process').execSync;
execSync("xterm -title RecursiveFileListing -e ls -latkR /");
এটি আপনাকে আপনার নতুন কমান্ডটি নতুন টার্মিনালে কী করছে তা দেখার অনুমতি দেয় তবে এখনও সিঙ্ক্রোনাস কল রয়েছে।