Tengo un proceso que se ha generado a partir de un shell. Se ejecuta como un proceso en segundo plano y exporta una base de datos a un archivo CSV /tmp.
¿Cómo puedo saber cuándo se completó el proceso en segundo plano (finalizó / salió) o si el bloqueo del archivo CSV se ha cerrado? Planeo enviar el archivo FTP a otro host una vez que está escrito, pero necesito el archivo completo antes de comenzar la transferencia del archivo.

Respuestas:
En Linux, el archivo no está bloqueado incluso cuando un programa le está escribiendo (a diferencia de Windows).
Para verificar si el proceso se ha completado, use:
Para verificar si el proceso tiene el archivo abierto, puede usar
lsof <file>enumerará los procesos que se abrieron<file>ls -l /proc/$(pgrep db-process)/fdenumera los descriptores de archivo abiertos por el procesodb-processfuente
Puede usar el
waitshell incorporado para lograr esto.La
waitconstrucción simplemente hace que el shell se detenga esperando que se completen los trabajos en segundo plano. Puede pasarle un trabajo específico para esperar o hacer que espere todos los trabajos.Por ejemplo:
Lo que resulta en:
fuente