2

トラブルシューティングのドキュメントで説明されているため、pm2 で実行されているサーバーが機能しないAWS CodeDeploy を使用ています。

ドキュメントに従い、バックグラウンドでノードサーバーを実行するために使用されるAfterInstall スクリプトを使用しました。node . > /dev/null 2> /dev/null < /dev/null &

サーバーを強制終了する次の方法を試しました

  • fuser -k 3000/tcp

  • lsof -P | grep ':3000' | awk '{print $2}' | xargs kill -9

  • kill -9 $(lsof -t -i:3000)

ただし、新しいプロセスが異なる PID で再起動するたびに

このバックグラウンド プロセスを強制終了し、 CodeDeployのApplicationStop スクリプトに追加するにはどうすればよいですか?

4

2 に答える 2

3

grep で pid を見つける際の問題の 1 つは、結果として grep pid も表示され、ターゲットの前に自分自身を殺す可能性があることです。

ps ax | grep node | grep -v grep

合理的に見える場合は、これを確認してください。

ps ax | grep node | grep -v grep | awk '{print $1}'

次に、kill を実行します。

ps ax | grep node | grep -v grep | awk '{print $1}' | xargs kill -9

pkillは柔軟性の低いオプション (正規表現フィルタリングなし) ですが、それを使用する-I場合は、意図しないものを強制終了しないように、必ずフラグを使用してください。

于 2016-03-09T03:15:16.087 に答える