From 1b0a89dc8363df6ddae77e94de4a990dd76275b2 Mon Sep 17 00:00:00 2001 From: Raphael Luba Date: Sun, 21 May 2017 01:51:43 +0200 Subject: [PATCH] Fix: Callbacks for process.stdout / .stderr (#2810) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix callbacks for process.stdout /.stderr The overrides for `process.stdout.write` and `process.stderr.write` did not invoke the provided callbacks when they’re done. * Fix: write callback is an optional parameter * Append encoding parameter to all calls --- lib/ProcessContainer.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/ProcessContainer.js b/lib/ProcessContainer.js index 654522ae..00480f62 100644 --- a/lib/ProcessContainer.js +++ b/lib/ProcessContainer.js @@ -201,12 +201,15 @@ function exec(script, stds) { else log_data = string.toString(); - stds.std && stds.std.write && stds.std.write(log_data); + stds.std && stds.std.write && stds.std.write(log_data, encoding); // hardcoded values of special log path to not write on disk - if (pm2_env.pm_err_log_path !== 'NULL' && pm2_env.pm_err_log_path !== '/dev/null') { - stds.err.write && stds.err.write(log_data, encoding, cb); - }; + if (pm2_env.pm_err_log_path !== 'NULL' && pm2_env.pm_err_log_path !== '/dev/null' && stds.err.write) { + stds.err.write(log_data, encoding, cb); + } + else if (cb) { + cb(); + } process.send({ type : 'log:err', @@ -235,11 +238,14 @@ function exec(script, stds) { else log_data = string.toString(); - stds.std && stds.std.write && stds.std.write(log_data); + stds.std && stds.std.write && stds.std.write(log_data, encoding); // hardcoded values of special log path to not write on disk - if (pm2_env.pm_out_log_path !== 'NULL' && pm2_env.pm_out_log_path !== '/dev/null') { - stds.out.write && stds.out.write(log_data); + if (pm2_env.pm_out_log_path !== 'NULL' && pm2_env.pm_out_log_path !== '/dev/null' && stds.out.write) { + stds.out.write(log_data, encoding, cb); + } + else if (cb) { + cb(); } process.send({