2013-07-22 5 views
1

저는 서버를 상속 받았으며 이상한 문제가 있습니다. 메시지를 반환하지 않은 forever start server.js을 실행할 때 문제가 발생했습니다. 그리고 나서 forever list은 영원히 실행중인 프로세스를 표시하지 않았습니다. 일부 파고 들자 마자 나는 어떤 사람들은 영원히 sudo으로 달릴 것을 제안했다.영원히 server.js를 중지하면 "server.js가 영원히 프로세스에 유효한 인덱스가 아닙니다."가 반환됩니다.

sudo forever start server.js을 실행 한 후에는 정상적으로 작동하는 것처럼 보였습니다. forever list은 server.js가 실행 중임을 보여줍니다. 그러나 이제는 그 과정을 멈출 수 없습니다. kill을 실행하면 top에 표시된 목록에서 노드가 제거되지만 Forever는 여전히 server.js를 실행중인 것으로 봅니다. sudo forever stop server.js을 실행하면 "server.js는 영원히 사용할 수있는 프로세스의 올바른 인덱스가 아닙니다."라는 오류를 반환합니다. sudo forever stopall 또는 sudo forever list 반환 아무리 내가 뭘

node.js:63 
    throw e; 
    ^
TypeError: Cannot call method 'replace' of undefined 
    at Argv (/usr/local/lib/node/.npm/optimist/0.1.2/package/lib/optimist.js:38:33) 
    at Object.<anonymous> (/usr/local/lib/node/.npm/forever/0.3.0/package/bin/forever:81:26) 
    at Module._compile (node.js:462:23) 
    at Module._loadScriptSync (node.js:469:10) 
    at Module.loadSync (node.js:338:12) 
    at loadModule (node.js:283:14) 
    at require (node.js:411:14) 
    at Object.<anonymous> (/usr/local/bin/forever:11:18) 
    at Module._compile (node.js:462:23) 
    at Module._loadScriptSync (node.js:469:10) 

실행, 나는 server.js를 중지 할 수 없습니다. 영원히 사명이 조금 지나치게 과열 된 것 같습니다. 어떤 제안?

답변

0

왜이 방법이 효과가 있었는지 모르겠지만 어떤 이유로 내 문제가 해결되지 않았습니다. 전체적으로는 아니지만 부분적으로는 그렇습니다. 내가 su root을 실행하고 영원히 명령을 실행하면 startstopall에 장애가 발생하지 않습니다. 여전히 forever stop server.js에 대해 동일한 오류가 발생합니다. 이유는 무엇이든간에 서버를 중단 할 수 없지만 forever stopallsu root으로 실행하면 해결할 수 있습니다.

+1

이것은 영원히 프로세스를 루트 프로세스로 시작하기 때문에 효과가있었습니다. 실제로'ps aux | 영원히 grep | grep -v grep' 명령 프롬프트에서 프로세스의 소유자가 루트임을 알 수 있습니다. root 만 프로세스를 시작/중지 할 수 있습니다. – verybadalloc

+0

알겠습니다. 나는'sudo '로 실행하는 것이 같은 방식으로 동작 할 것이라고 생각했다. 나는 내가 따라갈 때 이것을 알아 내고있어, 나는 그 설명을 고맙게 생각한다. 여전히 영원히 stop server.js를 유효한 명령으로 받아들이지 않는 이유를 설명하지 못합니다. 왜 그럴지 모른다고 생각 해요? – Mrweiner

+0

'ps aux |의 출력의 마지막 열의 값은 얼마입니까? grep 'server.js'| grep -v grep'? – verybadalloc