有可能是一個更簡單的方法,使用fuser
我創建了這裏的情況,這裏的node.js催生了一個過程,死亡
[email protected]:~/node$ node index.js
Server has started
Request for/received.
About to route a request for/
Request handler 'start' was called
/home/xxx/node/requestHandlers.js:27
response.write(body);
^
ReferenceError: body is not defined
at Object.start (/home/xxx/node/requestHandlers.js:27:17)
at route (/home/xxx/node/node/router.js:4:18)
at Server.onRequest (/home/xxx/node/node/server.js:9:3)
at Server.emit (events.js:70:17)
at HTTPParser.onIncoming (http.js:1478:12)
at HTTPParser.onHeadersComplete (http.js:102:31)
at Socket.ondata (http.js:1374:22)
at TCP.onread (net.js:348:27)
如果我跑fuser <directory from which node started
- 例如fuser /opt/node
,我看到了我的PID創建
[email protected]:~$ fuser node
node: 16490c 16491
只是要雙重肯定 - 運行ps
,我可以看到匹配的PID
[email protected]:~$ ps -ef | grep find | grep -v grep
xxxx 16490 1 0 17:39 pts/0 00:00:00 /bin/sh -c find/-name 'moo'
xxxx 16491 16490 21 17:39 pts/0 00:00:04 find/-name moo
我可以運行fuser -k /opt/node
殺和清理的PID從/opt/node
開始。我個人經常在工作和家中使用fuser
清理任何剩餘的過程。
我在Ubuntu和solaris上測試了fuser
。
NOTE:唯一需要注意的是,如果在該目錄上存在SSH會話,它將與該目錄中啓動的任何其他進程一起被刪除。