Se lo faccio:
journalctl -u my-service
quindi Shift-Fa 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-Fa 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 lessin quel punto, ma ^ C si comporta in modo diverso a causa di come è stato invocato journalctl. I flag che journalctl passa per lessincludere 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_LESSeffetti non funziona perché journalctl invierà un messaggio SIGTERMal 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_COLORSsembra 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 PIDlesse facendohd /proc/<pid>/environ. Cerca la variabile d'ambienteLESS. Sarà lì ma vuoto (normalmente lo èFRSXMK). Puoi anche digitare_Kmeno 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 cuilessmuore indipendentemente dall'impostazione.