¿Cómo puedo simular un descriptor de archivo que no responde?

¿Cómo puedo simular un descriptor de archivo que no responde?

Tenemos una aplicación que escribe en un archivo de registro. En el entorno de producción, el directorio del archivo de registro se asigna a un NAS:

192.168.1.10:/storage/app/log 2554360832 11844608 2412762112   1% /usr/local/app/log

Me dijeron que en algunas ocasiones el NAS dejó de funcionar, lo que provocó que nuestra aplicación se bloqueara indefinidamente al intentar escribir en el archivo de registro.

Me gustaría intentar reproducir esto para estar seguro de que eso es lo que sucedió y también para poder probar una solución. Pero no tenemos un NAS en nuestro entorno de desarrollo.

¿Hay alguna forma de hacer que un descriptor de archivo deje de responder, de modo que un intento de escribir en él se bloquee indefinidamente?

Respuesta1

Cree una canalización con nombre pero no la abra para leer:

$ mkfifo /tmp/test-fifo
$ echo a > /tmp/test-fifo

Respuesta2

Abre uno de estos sin nada en el otro extremo.

  • Una tubería con nombre.
  • Una pipa anónima.
  • Una toma de internet.
  • ...

También puede ejecutar un servicio localmente. Incluso podrías ejecutarlos en la ventana acoplable (o mediante contenedores o virtualización). Es preferible esto, ya que no tendrá idea de las diferencias que existen entre las otras opciones.

información relacionada