А что дает дебаг этого участка?
tail.stdout.addListener(«data», function (data) {
…
io.sockets.json.send({'data_new': (s)}); // перестает работать.
…
}
Если там поставить брейкпоинт после того, как он «перестает работать», интерпретатор будет туда заходить?
Больше похоже на то, что сокет выпал из коллекции в io.sockets, но остался жить внутри замыкания. Может быть какой-нибудь локальный дисконнект?