Там может быть более простой способ, используя fuser
Я создал здесь ситуацию, когда node.js породил процесс и умер
xxx@ubuntu:~/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
Я вижу pids, которые я создал
xxxx@ubuntu:~$ fuser node
node: 16490c 16491
Просто чтобы быть уверенным в двойстве - при запуске ps
я вижу соответствующие pids
xxxx@ubuntu:~$ 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
доубивать и убирать пиды начали с /opt/node
.Я лично использую fuser
регулярно на работе и дома, чтобы очистить все оставшиеся процессы.
Я проверил fuser
на Ubuntu и Solaris.
ПРИМЕЧАНИЕ: единственное, к чему вам следует быть осторожным, это то, что если в этом каталоге есть сеанс SSH, он будет очищен вместе с любым другим процессом, запущенным из этого каталога.