¿Cómo puedo comenzar un proceso con un nombre diferente?

12

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 pkillpara matarlos por el nombre.

La pregunta es cómo comenzar un proceso con un nombre para que pueda usar pkillpara matarlos por el nombre. Estoy abierto a otras soluciones también.

cache
fuente
¿Estás preguntando cómo iniciar un proceso con un nombre diferente al que usa habitualmente ? ¿O simplemente pregunta cómo iniciar un proceso desde la línea de comandos?
Eliah Kagan
El nombre del proceso se muestra igual que su nombre de archivo de forma predeterminada en Linux. No quiero usar su nombre de archivo predeterminado como su nombre de proceso ni cambiar el nombre del archivo cada vez que ejecuto. Por lo tanto, quiero comenzar los procesos con un nombre específico que quiero para poder usar 'pkill -f MyOwnName' para eliminar todos los procesos que acabo de iniciar llamados MyOwnName a la vez.
caché

Respuestas:

12

Puedes usar el execshell incorporado:

bash -c "exec -a MyUniqueProcessName <command> &"

<command>reemplaza el shell actual, no se crea ningún proceso nuevo, es por eso que estoy iniciando un nuevo shell para llamar exec.

Entonces puedes matar el proceso con:

pkill -f MyUniqueProcessName

Puede iniciar más de un proceso con el mismo nombre, luego pkill -f <name>los matará a todos.

Eric Carvalho
fuente
¿Cómo lo deshaces bash -c "exec -a MyUniqueProcessName <command> &"?
VNVN
1
@VNVN no puedes. Si se ha ejecutado un comando, se ha ejecutado. Para "deshacerlo", debe saber exactamente qué hizo y deshacerlo manualmente, si es posible. No hay Ctrl + Z cuando se ejecutan comandos.
terdon
+1. mi observación es: el nombre usado para exec -a name sleep 100aparece cuando lo hago ps -efpero no cuando lo hago pstree -p.
Trevor Boyd Smith
No funciona para la fusión. ->bash -c "exec -a mymeld123 meld &"
Eduardo Lucio
0

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í.

usuario814973
fuente