2

ノードのいくつかのインスタンスを実行していますが、それらはすべて異なるポートで実行されています。

実行中のポートに基づいてノードの特定のインスタンスを強制終了できる方法が必要です (ポート n にバインドされたノード インスタンスを強制終了します)。

私の端末から、「fuser -k xxxx/tcp」 xxxx をポートとして簡単に実行できます。

事は、それは私がそうする権限を持っているからです。私の質問は、ポート n で実行されているノード インスタンスを閉じる PHP ファイルを作成し、誰でも開くことができるようにしたいということです。巨大なセキュリティ ホールを開かずにこれを行う方法は?

ありがとうございました!

4

2 に答える 2

2

/shutdownを呼び出すprocess.exit();などのエンドポイントをサーバーにもう 1 つ追加することを検討できます。

結果はすぐに得られ、多数のシェル コマンドを使用したり、pid を追跡したりするよりも簡単に実装できます...

また、パスワード、署名付きリクエストなどで簡単に保護できます。

于 2013-03-01T22:53:13.593 に答える
0

これを行う最善の方法は、php でポート番号をファイルに書き込み、次に cron スクリプトを root (または必要なユーザー) として実行し、そのファイルからポート番号を読み取ることです。cron スクリプトには、ポート 80 で実行されているものやノード プロセスをまったく停止しないなど、何らかの安全対策も含まれている必要があります。

編集:もう少しセキュリティを強化するために、ポート番号の前に「パスワード」を入力するように要求できます。次に、cronスクリプトは、そのパスワードがプレフィックスとして付けられていることを確認します(または、ハッシュして、ハッシュを比較するとさらに良いでしょう)

于 2013-03-01T21:57:53.713 に答える