Basicamente, quero iniciar dinamicamente alguns processos que podem criar seus próprios filhos, também quero matar um certo grupo de processos que acabei de criar sempre que quiser.
Uma maneira de pensar é iniciar processos com um nome (para distinguir como um grupo) e depois usá pkill
-los para matá-los pelo nome.
A questão é como iniciar um processo com um nome para que eu possa usá pkill
-lo para matá-lo pelo nome? Também estou aberto a outras soluções.
Respostas:
Você pode usar o
exec
shell embutido:<command>
substitui o shell atual, nenhum novo processo é criado, é por isso que estou iniciando um novo shell para chamarexec
.Então você pode matar o processo com:
Você pode iniciar mais de um processo com o mesmo nome e depois
pkill -f <name>
matar todos eles.fonte
bash -c "exec -a MyUniqueProcessName <command> &"
?exec -a name sleep 100
aparece quando eu faço,ps -ef
mas não quando eu façopstree -p
.bash -c "exec -a mymeld123 meld &"
AMItac / Agência Solaris
Eu tenho este caso com uma ferramenta de transcodificação de áudio. (executando três vezes), mas possui apenas UM nome.
Eu fiz seguindo. Não foi para o diretório bin da ferramenta Shell e o copiou três vezes e deu a ele um novo nome. tc-1, tc-2, tc-3 (é uma ferramenta pequena, para não consumir muito espaço no disco rígido (com binários gordos, você não deve usar as outras formas mencionadas)
portanto, o processo começou com um nome exclusivo e pode ser morto com esse nome exclusivo sem o risco de matar outros processos de transcodificação que eu quero continuar.
outro truque pode funcionar ....
adicione um script #bash Name.sh, torne-o executável. Digite seus comandos lá e inicie o próprio script bash. No Centos, ele usa o nome do Bashscript que você executou e não o nome do compartimento.
Espero que algo ajude alguém lá fora.
fonte