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


10

私が行った場合:

journalctl -u my-service

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

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

回答:


6

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

 FRSXMK

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

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

したがって、環境で$ SYSTEMD_LESSを設定し、「K」オプションを省略すると問題解決するはずです。Ubuntu16.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

同じ設定の問題がありますがSYSTEMD_LESS、これがに送信されるフラグを変更することを確認ましたless。あなたはのPIDを見つけることによって確認することができますlessし、やってhd /proc/<pid>/environ。環境変数を探しますLESS。そこにはありますが、空です(通常はFRSXMKです)。_Kless自体を入力して、そのフラグが設定されているかどうかを確認することもできます。通常はそうです。合格SYSTEMD_LESS=した場合、そうではありません。私はそれを取得するときjournalctlプロセスはページャをシグナリングしてだと思うSIGINT理由である、less金型に関係なく、その設定の。

:ここではハックの概念実証あなたがこの問題を回避する方法を示しているのですgist.github.com/chriskuehl/9ab4c74c19f2f4cb883744171335ac44

0

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

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

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

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

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


うーん、これはフォローをやめました。しかし、そうでしたjournalctl | less、バグかもしれません。
18年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.