システムメニューに reboot の実行を予約するメニューを追加する
Description
Checklists
Attachments
- 11 Dec 2023, 08:11 AM
relates to
Activity
Kenichi IshigakiDecember 13, 2023 at 6:29 AM
@Reiko Sato ありがとうございます。マージしました。
Reiko SatoDecember 13, 2023 at 6:27 AM
@Kenichi Ishigaki
3バージョンとも、
システムメニュー>ツールの下に再起動メニューがあること、
再起動画面に遷移しメッセージと再起動ボタンが表示されていること、
再起動ボタンをクリックすると再起動されてダッシュボードに移動することを確認。
テーマ一覧に再起動へのリンクがあること、リンクをクリックすると該当画面に遷移することも確認
8.1.0でログにRebooted!
というメッセージが出ることも確認。
Kenichi IshigakiDecember 13, 2023 at 3:43 AM
@Keita Sugama ありがとうございます。コメントのパスについてはうっかりしていましたが、まあ、問題ないでしょう。
@Reiko Sato
それぞれ以下で対応しました。
https://github.com/movabletype/movabletype/pull/2929 (support-7.x用)
https://github.com/movabletype/movabletype/pull/2928 (support-8.0.x用)
https://github.com/movabletype/movabletype/pull/2917 (develop用)
以下の観点でご確認おねがいします。
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
@Kenichi Ishigaki
確認しました。良さそうです。
https://github.com/movabletype/movabletype/pull/2929/files#diff-a9a536b2e56841266b48053af26a9404328a561324e6349b1cf84ce72842598cR5593 のコメントのパスが実態と合っていない気はしますが、問題ないですよね。
Kenichi IshigakiDecember 13, 2023 at 2:21 AM
@Keita Sugama ありがとうございます。MT8.0 / MT7 用の PR も作成しました。これらは MT::App に追加したコールバック以外は同じものになっています。念のためレビューおねがいします。
https://movabletype.atlassian.net/browse/SUPPORT-114 より派生。何らかの事情でインポート時などにサーバの再起動が走らなかった場合にコンテンツデータのレジストリ情報が更新されずにエラーになることがありうるようなので、明示的に MT->app->reboot するためのシステム管理者限定メニューを追加してはどうか(画面にタイトルとボタンを用意して、ボタンクリックで再起動)。また、PIDFilePath の設定が不適切な場合などサーバ再起動が正しく走らない状況が予想される場合はその旨の警告も出せるようにした方がよさそう。