Quiero probar algún error y, para hacerlo, necesito tener una situación en la que el PID sea mayor que 99999. Estoy pensando en un script bash, un bucle for. ¿Algunas ideas?
Respuesta1
Podrías hacer algo como esto para iniciar un proceso con el PID deseado.
while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done
Puede esperar hasta obtener el PID deseado y probablemente reemplazar la echo
declaración por lo que realmente necesite probar.
Referencias
¿Se usará el mismo pid después de que lo maten?
EDITAR
¿Por qué crece el número PID? ¿Se debe al hecho de que ejecuta una instancia de bash diferente una y otra vez?
Creo que lo que has contado es lo que está pasando. Esto podría probarse simplemente como se muestra a continuación.
while true; do bash -c 'echo $$' ; done
Pudimos ver que los PID siguen incrementándose y en la página de manual de bash
veo eso,
-c cadena Si la opción -c está presente, los comandos se leen desde la cadena. Si hay argumentos después de la cadena, se asignan a los parámetros posicionales, comenzando con $0.
Según tengo entendido, cada echo
declaración en las pruebas anteriores se ejecuta como un proceso separado, por lo que pudimos ver que los PID se incrementan.
Respuesta2
Independientemente de lo que intente hacer, probablemente sea el mejor enfoque, pero si está decidido a algo como
while [[ 1 == 1 ]]; do sleep 10000& done
iniciará muchos sleeps
, pero puede llevar un tiempo iniciarlos todos. Cuando tenga suficientes procesos, simplemente presione Ctrl-C
para salir del while
bucle.