RX0343

Dominio: Ejecución

Mensaje de error

process.spawn[argv: …] no pudo iniciar %s: %s

En el mensaje, %s marca un valor que el motor completa cuando lanza el error.

La historia

Pediste iniciar un programa del sistema con process.spawn, y el sistema operativo se negó a arrancarlo. Te explico qué pasó. El motor usa posix_spawnp: busca el programa en la variable PATH, sin expandir comodines ni variables, y redirige su salida estándar a un archivo anónimo en memoria. Todo eso depende del kernel. Si el kernel dice que no, por ejemplo porque el programa no existe, no hay memoria suficiente o no se pudo crear el archivo, el motor no te devuelve un identificador de hilo que no sería dueño de nada. Eso sería una promesa vacía. Se detiene y te dice qué programa fue y qué razón dio el kernel. Un ejemplo: argv igual a una lista con el nombre de un programa mal escrito, como lss en vez de ls. El kernel responde que no existe. La solución casi siempre es revisar el nombre del programa y confirmar que está en PATH. Lee la razón del mensaje: ahí está la respuesta del sistema.

Texto del catálogo de errores del motor de Rush.