Aqui está um hack que pode fazer o que você quer:
nc -l 12345 & NC_PID=$! ; sleep 3; if [ 'netstat -ant | grep ':12345 .*ESTABLISHED'' -eq 0 ]; then kill -9 $NC_PID; fi
Ele inicia o servidor, dorme para qualquer que seja seu tempo limite e mata o netcat, a menos que haja uma conexão estabelecida. Existe um pequeno risco de o servidor travar se houver uma conexão existente em que a porta remota corresponda ao seu ouvinte, mas isso seria uma má sorte.
Nota: Eu testei isso em um CentOS Linux, então o código não é totalmente portátil, mas a idéia deve ser implementada em qualquer máquina * nix.