2010-12-16 323 views

Répondre

1

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.

1

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.

+0

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. –