Erros aleatórios lançados pelo shell Bash: não é possível abrir o named pipe

4

Eu descobri que manter um registro detalhado de cada comando que eu executei, de qual caminho eu o executei e de qual usuário eu era sudo, é extremamente valioso com o passar dos anos e estou tentando lembrar o que eu fez. Algum tempo atrás, depois de navegar vários artigos neste site, assim como outros, surgiu uma solução que funciona muito bem. Aqui está o que eu tenho no meu .bashrc:

SUDOUSER='who am i | awk '{print $1}''
SUDOIP='who am i | awk '{print $6}''
DT='date +"%Y%m%d%H%M%S"'

export HISTCONTROL=ignoredups
export HISTFILE=~/.history
DETAILHISTORY=~/.historydetail

echo $DT $SUDOUSER:$SUDOIP[$$] \|\|\| $(finger $SUDOUSER | head -1) logged in on $(date) \|\|\| >> $DETAILHISTORY
export PROMPT_COMMAND='trap "" 1 2 15; DT='date +"%Y%m%d%H%M%S"'; history -a >(tee -a ~/.bash_history | while read line; do cwd=$(echo "$cwd" | sed "s|$HOME|~|g"); if [[ $line =~ ^#[0-9]*$ ]]       ; then continue; fi; echo "$DT $SUDOUSER:$SUDOIP[$$] {$cwd} $line" >> $DETAILHISTORY; done); if [[ $(history 1) == "cd" ]]; then cwd=$OLDPWD; else cwd=$PWD; fi; trap 1 2 15;'

Eu recebo uma saída assim:

20180919150704 MyUsername:(192.168.24.207)[14090280] ||| Login name: MyUsername In real life: MyName logged in on Wed Sep 19 15:07:04 EDT 2018 |||
20180919150704 MyUsername:(192.168.24.207)[14090280] {~} clear
20180919150708 MyUsername:(192.168.24.207)[14090280] {~} cd user_scripts/
20180919150708 MyUsername:(192.168.24.207)[14090280] {~/user_scripts} ll
20180919150714 MyUsername:(192.168.24.207)[14090280] {~/user_scripts} cat file.sh
20180919151013 MyUsername:(192.168.24.207)[14090280] {~/user_scripts} cd
20180919151015 MyUsername:(192.168.24.207)[14090280] {~} cat .bashrc

Fantástico! Salvou minha sanidade tantas vezes.

Existe um lado negativo no entanto; de vez em quando, do nada, recebo esta mensagem:

bash: cannot open named pipe /tmp//sh-np.5ARMam for reading: A system call received an interrupt.

e às vezes eu recebo um monte de uma só vez:

bash: cannot open named pipe /tmp//sh-np.4QRMal for reading: A system call received an interrupt.
bash: cannot open named pipe /tmp//sh-np.zqRMaj for reading: A system call received an interrupt.
bash: cannot open named pipe /tmp//sh-np.y7RMai for reading: A system call received an interrupt.
bash: cannot open named pipe /tmp//sh-np.6ARMan for reading: A system call received an interrupt.

Eu não vejo nenhuma rima ou razão para isso; às vezes acontece quando eu ajustei o tamanho da janela do putty / terminal, o que eu não entendo. Isso começou a acontecer quando adicionei o registro detalhado do histórico (e parou quando eu o desabilitei).

Alguém pode sugerir que parte do registro em log do histórico em PROMPT_COMMAND pode estar contribuindo para esse problema e, ainda melhor, como isso pode ser evitado?

    
por John Kermit 19.09.2018 / 21:24

0 respostas

Tags