web-dev-qa-db-ja.com

journalctl-ページャーを終了せずにフォローを停止する

私が行った場合:

journalctl -u my-service

次にShift-Fページング中にフォローするには、どうすればよいですか(interrupt to abort)ページャーを終了せずに?

lessを使用すると、通常は^C、ただし、journalctlでそれを行うと、ページャー全体が終了します。

10
MikeKusold

あなたはがその時点でlessを使用していますが、^ Cはjournalctlによってどのように呼び出されたかによって動作が異なります。 journalctlがlessに渡すフラグには、次のデフォルトが含まれます:

 FRSXMK

これらのうち、「K」オプションがここで適用されると思います。

-Kまたは--quit-on-intr割り込み文字(通常は^ C)が入力されたときにlessをすぐに終了します(ステータス2)。通常、割り込み文字を使用すると、実行中の処理を停止してコマンドプロンプトに戻ります。このオプションを使用すると、「F」コマンドからコマンドプロンプトに戻ることができなくなります。

したがって、環境で$ SYSTEMD_LESSを設定し、「K」オプションを省略する必要がありますで問題が解決しますが、Ubuntu 16.04での私のテストでは機能しませんでした。

 SYSTEMD_LESS="FRSXM"journalctl -u nginx

ただし、以下のバリエーションの動作を比較することにより、Kフラグが関連していることを確認したい動作を取得できます。

# ^C after Shift-F does not completely quit
journalctl -u nginx | less -FRSXM

# ^C after Shift-F completely quits
journalctl -u nginx | less -FRSXMK
6
Mark Stosberg

私もこの迷惑な癖を経験しました。
設定SYSTEMD_LESSは、^ Cを受信したときにjournalctlがSIGTERMをポケットベルに送信するため、実際には機能しません。

私の「解決策」は、次のようなbashエイリアスを使用することでした。

alias log='SYSTEMD_COLORS=1 journalctl | less -FRSXM'

これはデフォルトのページャーを上書きし、フォローを中断しても終了しません。
環境変数SYSTEMD_COLORSSIGINTの後に色を付けて実行を減らす唯一の方法のようです。

これは私のDebian 9インストールで動作します。

0
clst