Ваша программа просто записывает в дескриптор, отличный от 1 или 2.
Рассмотрим следующий сценарий:
#!/bin/bash
echo test >$(tty)
Теперь давайте запустим его, перенаправляя и stdin, и stderr на / dev / null:
$ ./script >/dev/null 2>&1
test
Как видите, мы перенаправили изнутри вывод на терминал, поэтому внешнему перенаправлению на / dev / null делать нечего. В вашем случае похоже, что какой-то модуль отладки делал то же самое.