Jak zabić otwarty proces na węźle.js?
Próbuję skonfigurować build-system Dla Node.js na sublime, więc mogę nacisnąć F7, aby wywołać "węzeł" na otwartym pliku. Problem polega na tym, że proces jest otwarty na zawsze, więc za drugim razem, gdy używam F7, dostaję dodatek w użyciu.
Czy jest sposób na zabicie otwartego węzła".exe " proces z węzła.js?
4 answers
Użyj następującego zestawu poleceń, aby zidentyfikować proces uruchomiony na danym porcie i określić go z linii poleceń
sudo fuser -v 5000/tcp // gives you the process running on port 5000
Wyświetli szczegóły podobne do tego pokazanego poniżej
USER PID ACCESS COMMAND
5000/tcp: almypal 20834 F.... node
Następnie użyj
sudo fuser -vk 5000/tcp
Aby zakończyć proces. Sprawdź ponownie używając
sudo fuser -v 5000/tcp
Aby upewnić się, że proces został zakończony.
W systemie Windows możesz użyć następujących kroków
C:\> tasklist // will show the list of running process'
Image Name PID Session Name Session# Mem Usage
System 4 console 0 236 K
...
node.exe 3592 console 0 8440 k
Zwróć uwagę na PID odpowiadający procesowi węzłowemu, w tym przypadku 3592. Następnie uruchom taskkill, aby zakończyć proces.
C:\> taskkill /F /PID 3592
Lub /im switch
C:\> taskkill /F /IM node.exe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-28 17:03:48
From within Node.js:
var die = function(quitMsg)
{
console.error(quitMsg)
process.exit(1);
}
die('Process quit');
Istnieją pewne metody do wyjścia, które są dostępne tylko dla POSIX (tzn. nie dla Windows), które zakończą proces za pomocą swojego id procesu.
Zauważ również, że możesz być w stanie wysłać sygnał kill() za pomocą tej metody, która nie mówi, że nie jest dostępna dla Windows:
process.kill(pid, [signal])
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-30 18:19:57
Jeśli mówisz, że sublime jest wtyczką sublimeText, to mam ten sam problem i wysyłam TCP serverowi wiadomość "shutdown" z kodu Pythona, to
App.js
TCPserver
.on('connection', function(socket)
{
socket.pipe(require('through')
(function(data)
{ //----------------------------
if (data.toString() === 'shutdown')
{
process.exit();
}
//--------------------------
}));
socket.end();
})
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-08 07:16:50
Podobnie do tego, co powiedział @Alex W, możesz wysłać sygnał kill do procesu, o ile masz jego ID lub PID za pomocą następującej funkcji węzła:
process.kill(pid, [signal])
W moim przypadku, miałem PIDs łatwo dostępne, jak tarło child_process().spawn.pid
. Przetestowałem go i działa na Win 7 x64.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-23 13:30:58