回答:
その時点で使用していますが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
私もこの迷惑な癖を経験しました。^ Cを受信すると、journalctlがポケットベルにを送信するため、
設定はSYSTEMD_LESS
実際には機能しませんSIGTERM
。
私の「解決策」は、次のようなbashエイリアスを使用することでした。
alias log='SYSTEMD_COLORS=1 journalctl | less -FRSXM'
これはデフォルトのページャーを上書きし、フォローを中断しても終了しません。
環境変数SYSTEMD_COLORS
は、色を設定し、の実行を減らす唯一の方法のようSIGINT
です。
これは私のDebian 9インストールで動作します。
journalctl | less
、バグかもしれません。
SYSTEMD_LESS
、これがに送信されるフラグを変更することを確認しましたless
。あなたはのPIDを見つけることによって確認することができますless
し、やってhd /proc/<pid>/environ
。環境変数を探しますLESS
。そこにはありますが、空です(通常はFRSXMK
です)。_K
less自体を入力して、そのフラグが設定されているかどうかを確認することもできます。通常はそうです。合格SYSTEMD_LESS=
した場合、そうではありません。私はそれを取得するときjournalctlプロセスはページャをシグナリングしてだと思うSIGINT
理由である、less
金型に関係なく、その設定の。