1 votes

Processus zombie utilisant termux

Je teste une de mes applications sur l'émulateur de terminal termux d'Android (Android version 7.0). Je veux créer des processus zombies.

Sous GNU/Linux, si j'ouvre un émulateur de terminal et que j'écris :

ruby -e '10.times { fork { exit! } } && sleep '

Cela créera 10 processus zombies. Pour vérifier les processus zombies, j'écris :

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)> }"

Ce qui donne des résultats dans le format :

Active Processes: 189 (10 Zombies)

Mais sur Termux, je ne peux pas créer de processus zombies. Lorsque je forge un processus, le nombre de processus n'augmente pas (comme l'indiquent htop et le programme ruby). Même si j'essaie de créer des processus, il n'y en a pas. J'ai un total de 11 processus affichés sur Termux !

En quoi Android est-il si différent ? Existe-t-il un moyen de tester mon application avec termux ? Ou existe-t-il d'autres applications qui me permettent de faire ce genre de choses ?

1voto

Irfan Latif Points 16863

Je viens de créer 100 processus zombies sur Termux en utilisant :

for n in {1..100}; do (sleep 1 & exec sleep 10) & done

et ils existent pendant 10 secondes comme prévu, puis sont récoltés par init . Pour voir les processus zombies :

~$ ps axo stat,ppid,pid,cmd | grep ^Z

Ou simplement pour compter l'utilisation grep -c ^Z .

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X