Quero testar algum bug, e para isso preciso ter uma situação em que o PID seja maior que 99999. Estou pensando em um script bash, um loop for. Alguma ideia?
Responder1
Você poderia fazer algo assim para iniciar um processo com o PID desejado.
while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done
Você pode esperar até obter o PID desejado e provavelmente substituir a echo
instrução pelo que você realmente precisa testar.
Referências
o mesmo pid será usado após ser morto?
EDITAR
Por que o número PID cresce? É devido ao fato de você executar uma instância diferente do bash repetidamente?
Acredito que o que você contou é o que está acontecendo. Isso pode ser testado simplesmente como abaixo.
while true; do bash -c 'echo $$' ; done
Pudemos ver que os PIDs continuam sendo incrementados e na página de manual de bash
, vejo que,
-c string Se a opção -c estiver presente, os comandos serão lidos a partir da string. Se houver argumentos após a string, eles serão atribuídos aos parâmetros posicionais, começando com $0.
Pelo que entendi, cada echo
instrução no teste acima está sendo executada como um processo separado, e é por isso que pudemos ver que os PIDs estão sendo incrementados.
Responder2
O que quer que você esteja tentando fazer, provavelmente existe a melhor abordagem, mas se você estiver determinado, algo como
while [[ 1 == 1 ]]; do sleep 10000& done
iniciará muitos sleeps
, mas pode demorar um pouco para iniciar todos eles. Quando você tiver processos suficientes, basta clicar Ctrl-C
para sair do while
loop.