1. ホーム
  2. windows

[解決済み] node.jsのprocess.on('SIGINT')に相当するWindowsの機能は何ですか?

2023-02-27 01:19:20

質問

ガイダンスにしたがって ここで (をリスニングしている)。 SIGINT イベント) に応答して、Windows-8 でホストされた node.js アプリケーションを優雅にシャットダウンします。 Ctrl + C またはサーバーのシャットダウン。

しかし、Windows には SIGINT . また、試しに process.on('exit') も試しましたが、これは生産的なことをするには遅すぎるようです。

Windowsでは、このコードは私に与えます。 エラー。そのようなモジュールはありません

process.on( 'SIGINT', function() {
  console.log( "\ngracefully shutting down from  SIGINT (Crtl-C)" )
  // wish this worked on Windows
  process.exit( )
})

Windowsでは、このコードは実行されますが 優雅なことをするには遅すぎます。 :

process.on( 'exit', function() {
  console.log( "never see this log message" )
})

はあるのでしょうか? SIGINT に相当するイベントはありますか?

どのように解決するのですか?

readlineモジュールを使用して、SIGINTイベントをリッスンする必要があります。

http://nodejs.org/api/readline.html#readline_event_sigint

if (process.platform === "win32") {
  var rl = require("readline").createInterface({
    input: process.stdin,
    output: process.stdout
  });

  rl.on("SIGINT", function () {
    process.emit("SIGINT");
  });
}

process.on("SIGINT", function () {
  //graceful shutdown
  process.exit();
});