node.js - NodeJS: Can't kill spawn of gulp process -
i'd restart gulp on changes. can done placing following within gulpfile
spawn('gulp', [], { stdio: 'inherit'}); however, once gulp restarts in way, process no longer killed ctrl+c via terminal. if start gulp via terminal, can capture ctrl+c signal, can't if gulp started via spawn in gulpfile. how can capture 'sigint' spawn?
okay here's full story might encounter issue. have been reading, whenever want restart gulp within gulp use:
spawn('gulp', [], { stdio: 'inherit'}); process.exit(); i didn't mention process.exit() in question didn't expect affect usage of ctrl+c. indeed was, server expressjs one, whenever i'd use ctrl+c after gulp restarted within itself, port still in use error (error: listen eaddrinuse). obviously, node processes wasn't being closed. once removed line process.exit() code, able use ctrl+c , close processes. below useful bit of code in gulpfile , output in terminal related issue.
// gulpfile.js gulp.task('restart', function() { server.close(); spawn('gulp', [], { stdio: 'inherit'}); process.exit(); // line needs removed }); process.on('sigint', function() { settimeout(function() { gutil.log(gutil.colors.red('successfully closed ' + process.pid)); process.exit(1); }, 500); }); // console results: ^c[20:12:12] closed 67160 [20:12:12] closed 67151
Comments
Post a Comment