私も時々この問題を抱えています。何らかの理由で Hudson サーバーが完全にシャットダウンせず、起動したサーバーがポートを使用できません。この問題を解決するために、「netstat -n -o」を実行します。このようにして、ポートを保持しているプロセス ID を見つけ、タスク マネージャーを介してそのアプリを強制終了できます。サービスを再起動すると、Hudson が正常に起動します。
ここ数週間、私は同様の問題を抱えていました。説明には、プロセスが実行されていないときにアプリを再起動すると書かれています。ビルド キューに保持されていた 1 つのジョブを逃しました。構成に問題があるため、実際にはビルドされず、Hudson の再起動が妨げられました。
すべてのジョブが終了し、サーバーが再起動しない場合。再起動ページhttp://server:port/restartにもう一度アクセスして、もう一度再起動してみてください。それでもうまくいかない場合は、サービスを停止して、もう一度開始してください。
アップデート:
Hudson/Jenkins サーバーに物理的にログインするのに飽きてきたので、次のコマンドを使用してリモートで kill を実行しています。これらのコマンドは、専用ユーザー (JenkinsUser など) でサービスを実行することを前提としています。サービスと同じ資格情報で実行されている別のプロセスが java.exe を起動する可能性がある場合は、netstat を実行する必要があります。これは、Jenkins サーバー上でローカルに実行するか、rexec を使用して実行する必要があります (これは私にとってはオプションではありませんでした)。
:: get the pid of jenkins java.exe
tasklist /S %JENKINSSERVER% /FI "IMAGENAME eq java.exe" /FI "USERNAME eq %DOMAIN\USERNAME%"
:: terminate process use pid from previous command (instead of 1234)
taskkill /S %JENKINSSERVER% /F /T /PID 1234
:: stop the Jenkins service (just in case the service is hanging)
sc \\%JENKINSSERVER% stop Jenkins
:: start the Jenkins service again
sc \\%JENKINSSERVER% start Jenkins
時間があれば、スクリプトを作成するかもしれません。