Я запускаю веб-сервер node, используя pm2. Поскольку pm2 запускает другой процесс и перенаправляет stdout и stderr в файлы, я должен искать где-то еще для журналов. В идеале, я хотел бы, чтобы выход процесса node был в том же окне консоли, с которого я запускал pm2. В противном случае я бы согласился на pm2 запустить процесс node с активным окном консоли и запустить stdout и stderr процесса node в это консольное окно. Как это можно достичь? Я нахожусь на машине с Windows.
Создайте журнал pm2 для консоли
Ответ 1
Я считаю, что вы также можете увидеть stdout и stderr процесса, который выполняется демонизован командой pm2 logs
или pm2 logs [app-name]
.
Ответ 2
Нашел ответ (их документация не так уж велика), просто добавил флаг --no-daemon
, похоже, сделал это. Хотя, похоже, он все еще регистрируется в файле (даже при использовании флага) в первый раз. После перезапуска процесса (я наблюдаю за изменениями файлов) он запускается на консоль
Ответ 3
программно вы можете сделать что-то вроде этого:
const pm2 = require('pm2')
pm2.connect(function(err) {
if (err) {
console.error(err);
process.exit(2);
}
pm2.start([
{
script : "server.js",
},
]
, function(err, proc) {
if(err) {
throw err
}
});
pm2.launchBus((err, bus) => {
// this part is important
bus.on('log:out', data => {
console.log(data.data);
});
bus.on('log:err', data => {
console.log(data.data);
});
});
})