環境別の自動再起動設定
概要¶
「再起動」ボタンによる再起動は、単にプリザンタープロセスの停止を意味します。そこで、起動プロセス管理を設定することで、プロセスの停止後に自動的に再起動するように設定します。
主な環境での設定方法は以下の通りです。
各環境の比較表¶
| No | インフラ | 自動再起動 | 追加設定 |
|---|---|---|---|
| 1 | Windows | NSSMが自動再起動 | NSSMのインストールとサービス登録が必要 |
| 2 | Linux | systemdが自動再起動 | サービスユニットファイルの作成が必要 |
| 3 | Azure App Service | App Serviceが自動再起動 | 「Always On」の有効化を推奨 (追加設定は基本不要) |
| 4 | Docker | Dockerが自動再起動 | restart: unless-stoppedの設定が必要 |
| - | dotnet直接起動 | 自動再起動しない | 手動での再起動が必要 |
前提条件¶
- 事前に下記マニュアルの手順を実施している必要があります。
- パラメータ管理機能
- パラメータ管理機能:画面からの再起動
1. Windows¶
Windows標準のサービスマネージャ(srvany)は、アプリケーションの強制終了やクラッシュ時にサービスが停止したままとなります。そこで、サードパーティ製のNSSM(Non-Sucking Service Manager)にプリザンターを登録し、プロセスが終了するとNSSMが自動的にプリザンターを再起動するように設定します。
設定手順¶
- PowerShellで以下のコマンドを実行し、NSSMをインストールしてください。
winget install NSSM.NSSM --source winget --silent --accept-source-agreements --accept-package-agreements
- PowerShellで以下のコマンドを実行し、プリザンターをサービスとして登録してください。以下ではサービス名をPleasanterとしています。
nssm install Pleasanter "C:\Program Files\dotnet\dotnet.exe" "bin\Debug\net10.0\Implem.Pleasanter.dll --urls http://0.0.0.0:5000"
nssm set Pleasanter AppDirectory "C:\web\pleasanter\Implem.Pleasanter"
nssm set Pleasanter AppExit Default Restart
nssm set Pleasanter AppRestartDelay 3000
| 引数 | 値 | 説明 |
|---|---|---|
| AppDirectory | "C:\web\pleasanter\Implem.Pleasanter" | アプリケーションルートを指定 |
| AppExit Default Restart | Default Restart | プロセス終了時に自動再起動する |
| AppRestartDelay | 3000 | 再起動までの待機時間(ミリ秒) |
- PowerShellで以下のコマンドを実行し、NSSM経由でプリザンターのサービスを起動してください。
サービス状態の確認¶
サービスの状態を確認するには、sc.exe(Windows Service Control Manager)を使います。query {サービス名}というサブコマンドを渡すと、サービスの現在の状態(実行中・停止など)を表示します。PowerShellで以下のコマンドを実行してください。
2. Linux¶
以下の各ページで作成したPleasanterサービス用スクリプト「pleasanter.service」を使用します。
・インストーラでプリザンターをUbuntuにインストールする
・インストーラでプリザンターをAlmaLinuxにインストールする
・インストーラでプリザンターをRed Hat Enterprise Linux 9.7/10.1にインストールする
・インストーラでプリザンターをRed Hat Enterprise Linux 8にインストールする
※pleasanter.serviceの内容は、プラットフォームを問わず共通です。
設定手順¶
- 上記インストールの手順で作成したpleasanter.serviceの「Restart」と「RestartSec」に、それぞれ下表の値が設定されていることを確認してください。
| 設定 | 値 | 説明 |
|---|---|---|
| Restart | always | プロセス終了時に常に自動再起動する |
| RestartSec | 10 | 再起動までの待機時間(秒) |
##### pleasanter.service(10~11行目)
- 以下のコマンドを実行してください。作成したPleasanterサービス用スクリプトをsystemdに認識させ、サーバが起動した際にプリザンターサービスが起動するように設定したうえで、プリザンターを即時起動します。
サービス状態・再起動回数の確認¶
サービスの状態を確認するには、systemctlコマンドを使います。show {サービス名}でサービスの情報を表示します。ActiveStateプロパティは稼働中か否か(active/inactive)を、SubStateプロパティは稼働中であればrunning(正常稼働中)であることを表します。
以下は、自動再起動の回数を含めて確認するコマンドです。
3. Azure App Service¶
Azure App Serviceはデフォルトでプロセスの自動再起動をサポートしています。マニュアル通りにセットアップしていれば、追加設定は不要ですが、以下を確認してください。
設定手順¶
- Azure Portalに接続し、App Serviceを開いてください。
- 「構成」メニューの「全般設定」を開いて、「Always On」を有効化してください。
App Serviceはプロセスの終了を検知すると、自動的に再起動します。再起動は数秒以内に完了します。追加の起動プロセス管理設定は不要です。
4. Docker¶
Dockerに再起動ポリシー「restart: unless-stopped」を設定し、コンテナが終了した際に自動的に再起動するように設定してください。
主な再起動ポリシー¶
| ポリシー | 説明 |
|---|---|
| no | 再起動しない(デフォルト) |
| always | 常に再起動する |
| unless-stopped | 手動停止以外は再起動する(推奨) |
| on-failure | 異常終了時のみ再起動する |
設定手順¶
「Dockerで起動する」で作成したdocker-compose.ymlを下記のとおり編集してください。
編集前のdocker-compose.yml(15~18行目)¶
pleasanter:
container_name: pleasanter
image: implem/pleasanter:${PLEASANTER_VERSION}
depends_on:
: 後略
編集後のdocker-compose.yml(15~19行目)¶
pleasanter:
container_name: pleasanter
image: implem/pleasanter:${PLEASANTER_VERSION}
restart: unless-stopped # ←この行を追加
depends_on:
: 後略
コンテナの状態・再起動回数の確認¶
サービスの状態を確認するには、inspectコマンドを使います。--formatオプションの引数に{.RestartCount}と{.State.Status}を渡すことで、再起動回数やコンテナの状態を確認できます。

