Я создал gulpfile.js
, чтобы запустить мои серверы, и его содержимое можно увидеть ниже.Как убить все серверы, работающие в режиме gulp, используя одну команду bash
gulp.task('default', function() {
if(!fs.statSync('/etc/aptly.conf').isFile()){
process.exit();
return;
}
console.info('Starting static file server SimpleHTTPServer on 0.0.0.0:8080');
aptly_static = spawn('python', ['-m', 'SimpleHTTPServer', '8080'], {'cwd': '/opt/aptly/public', 'stdio': 'inherit'});
console.info('Starting Django runserver on 0.0.0.0:8000');
django = spawn('python', ['manage.py', 'runserver', '0.0.0.0:8000'], {'stdio': 'inherit'});
console.info('Starting Aptly api serve on 0.0.0.0:4416');
aptly_api = run('aptly api serve -listen="0.0.0.0:4416"').exec().pipe(gulp.dest('/tmp/aptlylog'));
return watchLess('src/**/*.less')
.pipe(debug())
.pipe(reLess)
.pipe(gulp.dest('dist/dist'));
Проблема заключается в том, если меньше препроцессора аварий по какой-либо причине, то gulpfile.js демон выходит плохо. Детские процессы python manage.py runserver
python -m SimpleHTTPServer
aptly api serve
все еще работает.
Мне пришлось тщательно их прекратить, используя ps -aux | grep runserver
и аналогично найти PID для удаления через sudo kill -9 $PID
.
Есть ли способ убить все процессы, если мой gulpfile.js неожиданно завершился с ошибкой?
Вы можете обнаружить, что 'pkill -f runserver' делает последнюю часть более гладкой. –
Да, я знаю, но снова, я должен запустить три команды pkill. Я хочу объединить эти команды в один. – python
Я планирую написать сценарий bash, чтобы убить все серверы. Вы думаете, что это хорошая идея? или есть некоторые лучшие методы – python