Estoy probando una de mis aplicaciones en el emulador de terminal termux de Android (versión 7.0). Quiero generar algunos procesos zombis.
En GNU/Linux, si abro un emulador de terminal y escribo:
ruby -e '10.times { fork { exit! } } && sleep '
Esto creará 10 procesos zombis. Para comprobar los procesos zombis, escribo:
ruby -e "puts Dir['/proc/**'].select { |x| File.split(x)[1].then { |y| y.to_i.to_s == y } }.then { |a| %<Active Processes: #{a.size} (#{a.count { |x| IO.readlines(%<#{x}/status>)[1].split[1] == ?Z.freeze} } Zombies)> }"
Que sale en el formato:
Active Processes: 189 (10 Zombies)
Pero en Termux, no puedo crear procesos zombis. Cuando estoy bifurcando un proceso, el conteo de procesos no se incrementa (como lo reportan htop y el programa ruby). Incluso si intento generar procesos, no se genera ninguno. ¡Tengo un total de 11 procesos mostrados en Termux!
¿Qué tiene de diferente Android? ¿Hay alguna manera de probar mi aplicación usando termux? ¿O hay alguna otra aplicación que me permita hacer estas cosas?
1 votos
Acabo de crear 100 procesos zombis en Termux usando
for n in {1..100}; do (sleep 1 & exec /bin/sleep 10) & done
y existen durante 10 segundos como se esperaba, luego se cosechan porinit
. Para ver los procesos zombis:ps axo stat,ppid,pid,cmd | grep ^Z
. O simplemente para tomar el uso de la cuentagrep -c ^Z
.