GNU/Linux >> Tutoriales Linux >  >> Linux

No se puede separar el proceso secundario cuando el proceso principal se inicia desde systemd

La solución es agregar

KillMode=process

al bloque de servicio. El valor predeterminado es control-group lo que significa que systemd limpia cualquier proceso secundario.

De man systemd.kill

KillMode=Especifica cómo se eliminarán los procesos de esta unidad. Uno de grupo de control, proceso, mixto, ninguno.

Si se establece en grupo de control, todos los procesos restantes en el grupo de control de esta unidad se eliminarán cuando se detenga la unidad (para servicios:después de ejecutar el comando de detención, como se configuró con ExecStop=). Si se establece en proceso, solo se elimina el proceso principal. Si se establece en mixto, la señal SIGTERM (ver más abajo) se envía al proceso principal mientras que la señal SIGKILL subsiguiente (ver más abajo) se envía a todos los procesos restantes del grupo de control de la unidad. Si se establece en ninguno, no se elimina ningún proceso. En este caso, solo se ejecutará el comando de parada en la parada de la unidad, pero de lo contrario no se eliminará ningún proceso. Los procesos que permanecen vivos después de la detención se dejan en su grupo de control y el grupo de control continúa existiendo después de la detención a menos que esté vacío.


Linux
  1. Cómo acelerar el proceso de compilación al instalar paquetes desde AUR

  2. ¿Por qué Signint no se propaga al proceso secundario cuando se envía a su proceso principal?

  3. Systemd y proceso de desove:¿los procesos secundarios se eliminan cuando el proceso principal sale?

  4. ¿Detener/matar un proceso desde la línea de comandos después de una cierta cantidad de tiempo?

  5. ¿Cómo obtener el valor de retorno de CHILD PROCESS?

¿Es posible aplicar un determinado código de salida al usar kill para detener un proceso?

¿Cómo puedo leer la entrada del teclado del host cuando estoy conectado a través de SSH?

¿Puedo confiar ciegamente en 127.0.0.1?

¿Puedo recuperar un proceso nano de una terminal anterior?

Linux - ¿Cómo puedo ver cuándo se inició un proceso?

¿Cómo puedo detener ZooKeeper en Ubuntu?