システムメニューに reboot の実行を予約するメニューを追加する

Description

https://movabletype.atlassian.net/browse/SUPPORT-114 より派生。何らかの事情でインポート時などにサーバの再起動が走らなかった場合にコンテンツデータのレジストリ情報が更新されずにエラーになることがありうるようなので、明示的に MT->app->reboot するためのシステム管理者限定メニューを追加してはどうか(画面にタイトルとボタンを用意して、ボタンクリックで再起動)。また、PIDFilePath の設定が不適切な場合などサーバ再起動が正しく走らない状況が予想される場合はその旨の警告も出せるようにした方がよさそう。

Checklists

None

Attachments

1
  • 11 Dec 2023, 08:11 AM

Activity

Show:

Kenichi IshigakiDecember 13, 2023 at 6:29 AM

ありがとうございます。マージしました。

Reiko SatoDecember 13, 2023 at 6:27 AM


3バージョンとも、
システムメニュー>ツールの下に再起動メニューがあること、
再起動画面に遷移しメッセージと再起動ボタンが表示されていること、
再起動ボタンをクリックすると再起動されてダッシュボードに移動することを確認。
テーマ一覧に再起動へのリンクがあること、リンクをクリックすると該当画面に遷移することも確認

8.1.0でログにRebooted! というメッセージが出ることも確認。

Kenichi IshigakiDecember 13, 2023 at 3:43 AM

ありがとうございます。コメントのパスについてはうっかりしていましたが、まあ、問題ないでしょう。

それぞれ以下で対応しました。

以下の観点でご確認おねがいします。

  • PSGIモードで MT を起動

  • システムメニューのツールの下に再起動メニューができている

  • 再起動メニューを選択するとメッセージと再起動ボタンが表示されている

  • 再起動ボタンをクリックすると MT が再起動されてダッシュボードに移動する

  • テーマ一覧画面に再起動画面へのリンクができている

  • プラグイン一覧画面に再起動画面へのリンクができている

MT8 (develop) については以下のプラグインを plugins/LogAtReboot/LogAtReboot.pl として保存後、再起動したときにシステムログに Rebooted! というメッセージが記録されることもご確認おねがいします。

package LogAtReboot; use strict; use warnings; use base qw( MT::Plugin ); our $VERSION = '0.01'; my $plugin = LogAtReboot->new({ id => 'LogAtReboot', name => 'LogAtReboot', version => $VERSION, registry => { callbacks => { reboot => sub { MT->log({ message => 'Rebooted!', class => 'system', category => 'reboot', level => MT::Log::INFO(), }); }, }, }, }); MT->add_plugin($plugin); 1;

Keita SugamaDecember 13, 2023 at 2:43 AM

確認しました。良さそうです。

https://github.com/movabletype/movabletype/pull/2929/files#diff-a9a536b2e56841266b48053af26a9404328a561324e6349b1cf84ce72842598cR5593 のコメントのパスが実態と合っていない気はしますが、問題ないですよね。

Kenichi IshigakiDecember 13, 2023 at 2:21 AM

ありがとうございます。MT8.0 / MT7 用の PR も作成しました。これらは MT::App に追加したコールバック以外は同じものになっています。念のためレビューおねがいします。

Implemented

Details

Assignee

Reporter

Fix versions

Priority

Smart Checklist

Created January 14, 2022 at 9:06 AM
Updated July 12, 2024 at 8:43 AM
Resolved December 13, 2023 at 6:29 AM