Articles of file descriptors

Proponer descriptor de file adicional "stdmeta"

Sé que se pueden definir descriptores de files adicionales para uso ad-hoc. Sin embargo, veo un uso real para un descriptor de file "stdmeta" que sería compatible con las herramientas CLI comunes. Este descriptor de file dará como resultado líneas que no son parte de los datos pero que no son errores . ¿Cómo puede […]

OS X, bash: less funciona en los descriptores de files abiertos, cat no

En un script bash en el que estoy trabajando (que debe ejecutarse en Ubuntu y OS X), necesito networkingirigir la salida de cientos de commands a un file. En lugar de anexar &>… a todos ellos, simplemente hago exec 9>&1 exec 5<>/tmp/some-file.txt exec 1>&5 Hasta ahora todo bien, pero a la mitad de todos esos […]

Redirigir solo stderr a una tubería

Este fragment de código proviene de la Guía avanzada de scripts de Bash . # Redirecting only stderr to a pipe. exec 3>&1 # Save current "value" of stdout. ls -l 2>&1 >&3 3>&- | grep bad 3>&- # Close fd 3 for 'grep' (but not 'ls'). # ^^^^ ^^^^ exec 3>&- # Now close […]

Flock no parece estar funcionando

Recientemente he estado tratando de crear un script de shell para un proyecto menor, y por alguna razón, el command de flock no me funciona correctamente. Cada vez que lo invoco en una subshell de forma atómica y lo pongo en segundo plano, otros progtwigs parecen ser capaces de leer / escribir en el file […]

Marca de time de socket en / proc / <pid> / fd

Si enumero /proc/<pid>/fd , veo un número de inputs para sockets. Estas inputs tienen marcas de time. Al principio pensé que lo eran cuando se creó el socket. Pero no siempre parece ser el caso. ¿Qué significa esta timestamp?

¿Cómo obtiene Bash la salida de un progtwig ejecutado?

Cuando ejecuto un progtwig en Bash , por ejemplo, [ls][2] , envía su salida a la salida estándar ( fd &1 ). Y la salida del progtwig ejecutado se muestra en la terminal. ¿Cómo obtiene Bash / terminal la salida del command ls ?

¿Por qué nginx contiene descripciones de files de loggings?

en Red Hat Enterprise Linux Server versión 6.6 (Santiago) versión nginx: nginx / 1.0.15 Uso la configuration común de nginx logrotate, logrotate funciona bien y nginx crea un nuevo file de logging como access.log o error.log # cat /etc/logrotate.d/nginx /var/log/nginx/*log { daily rotate 4 missingok notifempty compress shanetworkingscripts postrotate /bin/kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null) 2>/dev/null […]

¿Por qué no puedo `tail -f / proc / $ pid / fd / 1`?

Escribí un script simple que hace echo su PID: #/bin/bash while true; do echo $$; sleep 0.5; done Estoy ejecutando dicho script (dice 3844 una y otra vez) en un terminal y tratando de tail el descriptor de file en otro: $ tail -f /proc/3844/fd/1 No imprime nada en la pantalla y se cuelga hasta […]

¿Cómo se llama la syntax bash '<(contenido del file)?

Esta respuesta en Security StackExchange usa una syntax de bash interesante para generar un file en línea: openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650 Este bit es particularmente interesante: <(openssl ecparam -name secp384r1) Corriendo solo: echo <(openssl ecparam -name secp384r1) Me vuelvo /dev/fd/63 Así que esto […]

Uso práctico para mover descriptores de files

De acuerdo con la página del hombre bash: El operador de networkingirección [n]<&digit- mueve el digit descriptor de file al descriptor de file n , o la input estándar (descriptor de file 0) si n no está especificado. digit se cierra después de duplicarse a n . ¿Qué significa "mover" un descriptor de file a […]