que simple .. mais comment?vérifier la liste du répertoire en cours lorsque le système est à court de la table de processus?
Répondre
Vous serez limité aux composants internes du shell, donc si vous exécutez bash
, tapez help
et examinez les composants internes disponibles.
Par exemple, vous devriez être en mesure de le faire
$ echo *
à la liste des noms de fichiers dans le répertoire courant.
En supposant que vous souhaitiez essayer de restaurer le système après avoir consulté le répertoire en cours, un certain nombre d'options s'offrent à vous.
Important, kill(1)
est intégré, vous pouvez donc l'utiliser pour libérer des emplacements de processus.
Vous pouvez naviguer/proc pour examiner les processus en cours - /proc/<pid>/cmdline
contiendra les noms de processus que vous pouvez lire directement dans le shell:
$ read line < /proc/self/cmdline
$ echo $line
Cela peut aider à trouver les ID processus, vous devez tuer.
Vous voulez dire que vous n'avez plus de PID disponibles?
La plupart des shells listent le répertoire courant avec un built-in, plutôt que d'invoquer le binaire ls, donc vous ne devriez pas dépenser de pid. Cela dit, je tuerais probablement une centaine de pids au hasard pour me donner une marge de manœuvre pour réparer ce qui ne va pas.
Mais nous ne pouvons pas ajouter un nouveau processus du tout. Savez-vous si nous pouvons fourchette de coquille? Si nous le pouvons, nous devrions être en mesure d'exécuter le code sous un thread au lieu d'un processus. –