Se lo faccio:
journalctl -u my-service
quindi Shift-F
a seguire durante il paging, come posso fare (interrupt to abort)
senza uscire dal cercapersone?
Con less
, in genere solo ^C
, ma se lo faccio in journalctl, esce l'intero cercapersone.
Se lo faccio:
journalctl -u my-service
quindi Shift-F
a seguire durante il paging, come posso fare (interrupt to abort)
senza uscire dal cercapersone?
Con less
, in genere solo ^C
, ma se lo faccio in journalctl, esce l'intero cercapersone.
Risposte:
Si sta utilizzando less
in quel punto, ma ^ C si comporta in modo diverso a causa di come è stato invocato journalctl
. I flag che journalctl passa per less
includere i seguenti valori predefiniti:
FRSXMK
Di questi, penso che l'opzione "K" si applichi qui:
-K o --quit-on-intr Fa sì che less esca immediatamente (con stato 2) quando viene digitato un carattere di interruzione (di solito ^ C). Normalmente, un carattere di interruzione fa sì che meno fermi qualsiasi cosa stia facendo e ritorni al suo prompt dei comandi. Si noti che l'uso di questa opzione rende impossibile tornare al prompt dei comandi dal comando "F".
Quindi, impostando $ SYSTEMD_LESS nel tuo ambiente e omettendo l'opzione "K" dovresti risolvere il problema, non ha funzionato sul mio test su Ubuntu 16.04:
SYSTEMD_LESS="FRSXM"journalctl -u nginx
Tuttavia, è possibile ottenere il comportamento desiderato per confermare che il flag K è correlato confrontando il comportamento delle seguenti variazioni:
# ^C after Shift-F does not completely quit
journalctl -u nginx | less -FRSXM
# ^C after Shift-F completely quits
journalctl -u nginx | less -FRSXMK
Ho anche appena sperimentato questa seccatura fastidiosa.
L'impostazione in SYSTEMD_LESS
effetti non funziona perché journalctl invierà un messaggio SIGTERM
al cercapersone quando riceve un ^ C.
La mia "soluzione" era usare un alias bash come questo:
alias log='SYSTEMD_COLORS=1 journalctl | less -FRSXM'
Ciò sostituisce il cercapersone predefinito e non termina quando si interrompe follow.
La variabile d'ambiente SYSTEMD_COLORS
sembra essere l'unico modo per avere colori e continuare a funzionare dopo a SIGINT
.
Funziona con la mia installazione di Debian 9.
journalctl | less
, potrebbe essere un bug.
SYSTEMD_LESS
, ma ho confermato che cambia i flag inviatiless
. Puoi controllare trovando il PIDless
e facendohd /proc/<pid>/environ
. Cerca la variabile d'ambienteLESS
. Sarà lì ma vuoto (normalmente lo èFRSXMK
). Puoi anche digitare_K
meno se stesso per vedere se quel flag è impostato. Normalmente lo è. Se lo passiSYSTEMD_LESS=
non lo è. Penso che il processo journalctl stia segnalando al cercapersone quando arrivaSIGINT
, motivo per cuiless
muore indipendentemente dall'impostazione.