Si lo hago:
journalctl -u my-service
luego Shift-F
a seguir mientras busca, ¿cómo hago (interrupt to abort)
sin salir del buscapersonas?
Con less
, normalmente solo ^C
, pero si hago eso en journalctl, sale del buscapersonas completo.
Usted está utilizando less
en ese momento, pero ^ C se comporta de manera diferente debido a la forma en que fue invocada por journalctl
. Las banderas que journalctl pasa para less
incluir los siguientes valores predeterminados:
FRSXMK
De estos, creo que la opción "K" se aplica aquí:
-K o --quit-on-intr Hace que menos salga inmediatamente (con estado 2) cuando se escribe un carácter de interrupción (generalmente ^ C). Normalmente, un carácter de interrupción hace que menos detenga lo que esté haciendo y regrese a su símbolo del sistema. Tenga en cuenta que el uso de esta opción hace que sea imposible volver al símbolo del sistema desde el comando "F".
Entonces, estableciendo $ SYSTEMD_LESS en su entorno y omitiendo la opción "K" debería resolver el problema, no funcionó en mi prueba en Ubuntu 16.04:
SYSTEMD_LESS="FRSXM"journalctl -u nginx
Sin embargo, puede obtener el comportamiento que desea para confirmar que el indicador K está relacionado al comparar el comportamiento de las siguientes variaciones:
# ^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
, pero me confirmaron este no cambiar las banderas enviados aless
. Puede verificarlo buscando el PID deless
y haciendohd /proc/<pid>/environ
. Busque la variable de entornoLESS
. Estará allí pero vacío (normalmente estáFRSXMK
). También puede escribir_K
menos en sí mismo para ver si ese indicador está configurado. Normalmente lo es. Si pasaSYSTEMD_LESS=
, no lo es. Creo que el proceso de journalctl está señalando al localizador cuando llegaSIGINT
, por lo queless
muere independientemente de esa configuración.También acabo de experimentar esta peculiaridad molesta.
La configuración de
SYSTEMD_LESS
hecho no funciona porque journalctl enviará unSIGTERM
al localizador cuando reciba un ^ C.Mi "solución" fue usar un alias bash como este:
Esto anula el buscapersonas predeterminado y no sale cuando interrumpe el seguimiento.
La variable de entorno
SYSTEMD_COLORS
parece ser la única forma de tener colores y seguir corriendo menos después de unSIGINT
.Esto funciona en mi instalación de Debian 9.
fuente
journalctl | less
, podría ser un error.