function runNpmInstall() {
    return new Promise((resolve, reject) => {
        let cmd = 'npm';
        if (os.platform() === 'win32') {
            cmd += '.cmd';
        }
        npmProcess = spawn(cmd, ['install'], {cwd: path.join(__dirname, 'service_')});

        npmProcess.on('error', e => {
            npmProcess = null;
            reject(e);
        });

        npmProcess.on('close', async code => {
            npmProcess = null;
            if (code === 0) {
                resolve();
            } else {
                reject(code);
            }
        });

        npmProcess.stdout.on('data', data => {
            log(data);
            console.log(`${data}`);
        });

        npmProcess.stderr.on('data', data => {
            log('error: ' + data);
            console.error(`${data}`);
        });
    });
}