Показать сообщение отдельно
  #1 (permalink)  
Старый 15.09.2021, 22:40
Новичок на форуме
Отправить личное сообщение для Ulibka Посмотреть профиль Найти все сообщения от Ulibka
 
Регистрация: 15.09.2021
Сообщений: 2

Как правильно завершить работу с помощью SIGTERM ?
Нужно завершать работу скрипта на Node (изнутри самого скрипта) таким образом, чтобы закрывался logger.
Тестовый код ниже.

Можно ли как то послать сигнал SIGTERM самому себе ?

В примере который я написал приложение просто закрывается и слушатели SIGTERM и beforeClose не срабатывают

Можно ли как то завершить приложение из самого приложения чтобы сработал слушатель SIGTERM (собственно мне надо только дождаться выполнения logger.close() )

import fs from 'fs';
import path from 'path';

const fname = path.resolve(__dirname, '../../', 'pipser.log');
console.log('-- LOGER START ---');
console.log(fname);

export const logger = fs.createWriteStream(fname, {
  flags: 'a', // 'a' means appending (old data will be preserved)
});

logger.write('some data'); // append string to your file
logger.write('more data'); // again
logger.write('and more'); // again
// logger.end(); // close string

process.on('SIGTERM', () => {
  console.log('Logger CLOSED');
  logger.close();
});

process.on('beforeExit', () => {
  console.log('Logger CLOSED before');
  logger.close();
});

setInterval(() => {
  console.log('tick');
}, 500);

setTimeout(() => {
  process.kill(process.pid, 'SIGTERM');
}, 2000);
Ответить с цитированием