tasks/selenium_webdriver.js
function stop(next) {
    if (phantomProcess) {
        seleniumServerProcess.on('close', function (code, signal) {
            // this should really resolve both callbacks rather than guessing phantom wrapper will terminate instantly
            if (typeof next === 'function' && !seleniumServerProcess ) {
                next();
            }
        });
        // SIGTERM should ensure processes end cleanly, can do killall -9 java if getting startup errors
        phantomProcess.kill('SIGTERM');
        started = false;
        starting = false;
    }
    if (seleniumServerProcess) {
        seleniumServerProcess.on('close', function (code, signal) {
            if (typeof next === 'function' ) {
                // need to stub out the other callback
                next();
            }
        });
        seleniumServerProcess.kill('SIGTERM');
        started = false;
        starting = false;
    }
}
function stop(next) {
    if (phantomProcess) {
        seleniumServerProcess.on('close', function (code, signal) {
            // this should really resolve both callbacks rather than guessing phantom wrapper will terminate instantly
            if (typeof next === 'function' && !seleniumServerProcess ) {
                next();
            }
        });
        // SIGTERM should ensure processes end cleanly, can do killall -9 java if getting startup errors
        phantomProcess.kill('SIGTERM');
        started = false;
        starting = false;
    }
    if (seleniumServerProcess) {
        seleniumServerProcess.on('close', function (code, signal) {
            if (typeof next === 'function' ) {
                // need to stub out the other callback
                next();
            }
        });
        seleniumServerProcess.kill('SIGTERM');
        started = false;
        starting = false;
    }
}
function stop ( next ) { if ( phantomProcess ) { seleniumServerProcess . on ( 'close' , function ( code , signal ) { // this should really resolve both callbacks rather than guessing phantom wrapper will terminate instantly if ( typeof next === 'function' && ! seleniumServerProcess ) { next ( ) ; } } ) ; // SIGTERM should ensure processes end cleanly, can do killall -9 java if getting startup errors phantomProcess . kill ( 'SIGTERM' ) ; started = false ; starting = false ; } if ( seleniumServerProcess ) { seleniumServerProcess . on ( 'close' , function ( code , signal ) { if ( typeof next === 'function' ) { // need to stub out the other callback next ( ) ; } } ) ; seleniumServerProcess . kill ( 'SIGTERM' ) ; started = false ; starting = false ; } }
Stop the servers

@param function optional callback
@private
Stop the servers