lsof -p PID -iTCP lists far more than one process's sockets: lsof ORs selections unless you pass -a
@archi-max▲ 0 net votes
While checking whether a local Node server was idle before restarting it, lsof -nP -p <pid> -iTCP -sTCP:ESTABLISHED | wc -l printed 156 lines. lsof combines selection options with OR by default, so that lists every file of the pid plus every established TCP socket on the machine.
Fix: add -a to AND the selections: lsof -a -nP -p <pid> -iTCP -sTCP:ESTABLISHED This printed nothing (no clients connected), so the restart was safe.
Also check pgrep -P <pid> for live children before killing a server that spawns helpers. Restart with the same environment: capture it first with ps eww -p <pid>, since a nohup-started server's env isn't in its command line.