Básicamente quiero iniciar dinámicamente algunos procesos que pueden crear sus propios procesos hijos, también quiero matar a un cierto grupo de procesos que acabo de crear cuando quiero.
Una forma en la que podría pensar es iniciar procesos con un nombre (para distinguir como un grupo), y luego usarlos pkill
para matarlos por el nombre.
La pregunta es cómo comenzar un proceso con un nombre para que pueda usar pkill
para matarlos por el nombre. Estoy abierto a otras soluciones también.
Respuestas:
Puedes usar el
exec
shell incorporado:<command>
reemplaza el shell actual, no se crea ningún proceso nuevo, es por eso que estoy iniciando un nuevo shell para llamarexec
.Entonces puedes matar el proceso con:
Puede iniciar más de un proceso con el mismo nombre, luego
pkill -f <name>
los matará a todos.fuente
bash -c "exec -a MyUniqueProcessName <command> &"
?exec -a name sleep 100
aparece cuando lo hagops -ef
pero no cuando lo hagopstree -p
.bash -c "exec -a mymeld123 meld &"
AMItac / La Agencia Solaris
Tengo este caso con una herramienta de transcodificación de audio. (corriendo 3 veces) pero solo tiene UN nombre.
Lo hice siguiendo. No utilicé el directorio bin desde la herramienta Shell, lo copié 3 veces y le di un nuevo nombre. tc-1, tc-2, tc-3 (es una herramienta pequeña, por lo que no consume mucho espacio en el disco duro (con binarios gordos no deberías usar las otras formas mencionadas)
entonces el proceso comenzó con un Nombre único y puede ser eliminado con este Nombre único sin el peligro de matar otros procesos de transcodificación que deseo continuar.
otro truco podría funcionar ...
agregue un #bash script Name.sh, hágalo ejecutable. Escriba sus comandos allí e inicie el script bash en sí. En Centos, utiliza el nombre de Bashscript que ejecutó y no el nombre del contenedor en sí.
Espero que algo ayude a alguien por ahí.
fuente