Вы можете попробовать подключиться к этому процессу с помощью отладчика,и принудительно перенаправить его файловый дескриптор 2 в другое место:
gdb -batch -p PID -ex 'p $f=open("/path/to/log", 01101, 0666), dup2($f, 2), close($f)'
Замените PID
на pid
вашего процесса, а "/path/to/log"
на файл, в который следует перенаправить fd 2 (stderr ). 01101
есть O_WRONLY|O_CREAT|O_TRUNC
. Вы можете изменить разрешения 0666
на более строгие, если umask процесса неверен. Процесс может буферизоваться, и его выходные данные могут не отображаться сразу в файле, куда был перенаправлен stderr.
Это взлом. YMMV .
Я не думаю, что есть, но вы всегда можете написать это сами как:
delete-horizontal-space() {
emulate -L zsh
set -o extendedglob
LBUFFER=${LBUFFER%%[[:blank:]]##}
RBUFFER=${RBUFFER##[[:blank:]]##}
}
zle -N delete-horizontal-space
bindkey '\e\\' delete-horizontal-space