Cuando escribo este comando
nohup CloudCompute.command &
produce el resultado
[1] 782
que es lo que quiero. (Es el número PID por cierto)
Entonces, cuando ejecuto este mismo comando en un ejecutable ( .command
) e intento agregar el resultado a un archivo, no funciona. Simplemente imprime lo que CloudCompute.command
genera, no el PID real que se muestra cuando lo ejecuta. Estoy seguro de que está en el mismo directorio.
¿Por qué está pasando esto? ¿Qué puedo hacer para que el ejecutable produzca el mismo resultado que escribirlo manualmente?
Gracias
Respuesta1
¿Por qué está pasando esto?
Esa salida:
[1] 782
no es del ejecutable. Eso es lo que bash
escribe en la terminal, cuando ejecutas algo en segundo plano. Es el número de trabajo [1]
y el PID 782
del proceso. Más tarde, cuando finalice el proceso, verá algo como:
[1]+ Done command
Esto también es al bash
notar que el proceso con el trabajo número 1 ha finalizado.
Cuando se ejecuta un comando en segundo plano, el PID se almacena en la variable $!
:
$ sleep 10 &
[1] 1234
$ echo $!
1234
¿Qué puedo hacer para que el ejecutable produzca el mismo resultado que escribirlo manualmente?
Por lo tanto, su ejecutableesproduciendo el mismo resultado.