Si queremos fork
cualquier cosa desde el interior de un script bash (o incluso en la línea de comando), simplemente podemos rodearlo con $ () o ticks de retroceso. Por ejemplo;
echo $(ls)
- Esto bifurcará el entorno actual y ejecutará ls dentro del subshell (bifurcado)
¿Cómo podemos usar vfork
( http://man7.org/linux/man-pages/man2/vfork.2.html ) en lugar de la funcionalidad estándar de la bifurcación?
vfork
función en sí? Si realmente le preocupan los beneficios de rendimiento, probablemente no debería usar ningún tipo de shell como lenguaje de desarrolloRespuestas:
Hacer un
grep -Ri vfork
código fuente en bash no encuentra ningún resultado, por lo que no hay forma de usar directamente vfork desde bash.Si solo quiere algo que invoque a un hijo y bloquee al padre, bueno, su ejemplo de subshell ya lo hace. De
echo
lo contrario , probablemente obtendría mejores resultados incompletos.También puede ejecutar un comando en segundo plano con
&
y luego usarwait
para tener el bloque primario hasta que finalice el secundario.fuente
fork
llamada real en otra cosa, por ejemplo en pseudocódigo;vork=true; echo $(ls)