2016-02-21 2 views
1

Я пытаюсь написать команду останова для моего приложения nodeJS, который отбирает для процесса узла и убивает его, до сих пор у меня есть:Killing процесс узла, используя package.json сценарий остановки

{ 
    ... 
    "scripts": { 
    "start": "node src/main/webapp/index.js", 
    "stop": "kill \"$(ps ux | grep node | grep -Eo '^\\s+[0-9]+' | tr -d '[[:space:]]')\"" 
    } 
    ... 
} 

Если я запустить ps ux я получаю

PID PPID PGID  WINPID TTY   UID STIME COMMAND 
12228 8428 12228  12960 cons0  197608 22:02:12 /usr/bin/ps 
4840  1 4840  4840 cons0  197608 22:01:46 /usr/bin/bash 
13484 12292 12292  8024 cons0  197608 22:02:07 /c/Program Files/nodejs/node 

Если я бегу echo "$(ps ux | grep node | grep -Eo '^\s+[0-9]+' | tr -d '[[:space:]]')" тогда я получаю выход 13484 так что я знаю, что немного работы. Однако, когда я бегу npm stop я получаю ошибку:

npm ERR! Windows_NT 6.3.9600 
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "stop" 
npm ERR! node v0.12.4 
npm ERR! npm v2.10.1 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] stop: `kill "$(ps ux | grep node | grep -Eo '^\s+[0-9]+' | tr -d '[[:space:]]')"` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] stop script 'kill "$(ps ux | grep node | grep -Eo '^\s+[0-9]+' | tr -d '[[:space:]]')"'. 
npm ERR! This is most likely a problem with the app package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  kill "$(ps ux | grep node | grep -Eo '^\s+[0-9]+' | tr -d '[[:space:]]')" 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls app 
npm ERR! There is likely additional logging output above. 

Почему этот разрыв? Есть ли более простой способ сделать это?

ответ

1

Это похоже на работу:

"scripts": { 
    "start": "node src/main/webapp/index.js & echo $! > .pid", 
    "stop": "kill $(cat .pid)" 
} 

Может быть, это достаточно хорошо для того, что вы пытаетесь достичь, но я предполагаю, что есть более эффективные способы.

 Смежные вопросы

  • Нет связанных вопросов^_^