GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo configuro el directorio de trabajo del proceso principal?

El comando chdir es un shell integrado, por lo que tiene acceso directo al directorio de trabajo del shell que lo ejecuta. Los shells suelen ser bastante buenos para protegerse de los efectos de los scripts, dando al proceso secundario una copia del propio entorno de trabajo del shell. Cuando el proceso hijo sale, el entorno que utilizó se elimina.

Una cosa que puede hacer es 'obtener' un script. Esto le permite cambiar el directorio porque, en esencia, le está diciendo al shell que ejecute los comandos del archivo como si los hubiera escrito directamente. Es decir, no está trabajando desde una copia del entorno del shell, está trabajando directamente en él, al realizar el abastecimiento.


No existe una forma "legal" de influir en el directorio actual del proceso principal, aparte de pedirle al proceso principal que lo cambie por sí mismo.

chdir que cambia el directorio en bash scripts no es una utilidad externa, es un comando integrado.


No hagas esto.

FILE *p;
char cmd[32];
p = fopen("/tmp/gdb_cmds", "w");
fprintf(p, "call chdir(\"..\")\ndetach\nquit\n");
fclose(p);
sprintf(cmd, "gdb -p %d -batch -x /tmp/gdb_cmds", getppid());
system(cmd);

Será probablemente funciona, aunque ten en cuenta que el pwd de Bash el comando se almacena en caché y no se notará.


Linux
  1. ¿Nuevo proceso principal cuando muere el proceso principal?

  2. ¿Cómo Instalar R 3.3.1 En El Directorio Propio?

  3. ¿Cómo establecer el nombre de un hilo en Linux pthreads?

  4. Cómo matar el proceso zombie

  5. ¿Cómo puedo configurar la afinidad del procesador de un proceso en Linux?

Cómo cambiar la prioridad de un proceso en Linux

Cómo encontrar el tamaño total de un directorio en Linux

Cómo configurar el nombre de host bonito

¿Cómo configurar la privacidad del directorio en cPanel?

Cómo configurar el cortafuegos UFW en Linux

Cómo enviar procesos a segundo plano en Linux