`ps aux` écrit en Bash sans fork
(github.com/izabera)Implémenter ps aux en bash
-
Question d’entretien : pour un poste nécessitant des connaissances en bash/Linux, on peut imaginer une situation comme celle-ci
- Vous utilisez un shell bash sur une machine accessible en SSH, mais il est impossible de créer de nouveaux processus
- Une question peut consister à demander quoi faire lorsque tous les PID sont utilisés
-
Solution : cet outil permet de se comporter comme si la commande
ps auxétait disponible- Cela ne fonctionne pas à 100 % dans tous les cas, mais le comportement est similaire
Résumé de GN⁺
- Cet article présente une méthode pour remplacer la commande
ps auxlorsqu’il est impossible de créer de nouveaux processus dans un shell bash - Il explique comment vérifier les processus système à l’aide d’un script bash
- Cette méthode peut ne pas fonctionner parfaitement dans tous les cas, mais elle peut être utile dans un environnement contraint
- D’autres outils offrant des fonctions similaires incluent
htopet la commandetop
1 commentaires
Commentaire Hacker News
Le problème le plus difficile en informatique, c’est l’alignement
Exemple de question d’entretien demandant des connaissances sur bash/Linux
/proc/[pid]/quels processus consomment l’espace des PIDkillest une commande intégrée de bash, donc on peut l’utiliser sans créer de nouveau processusExpérience d’un entretien en 2011 pour un poste de SRE dans une grande entreprise technologique américaine
netstat/proc/, donc il a écrit des remplaçants pourpsetfuserIzabera de bash@libera fait partie des experts de bash
Exemple de code bash propre
Une autre question demande comment résoudre le problème lorsqu’il est impossible de créer un nouveau processus parce que tous les PID sont utilisés
Cela ne fonctionne pas avec bash 3.2, mais fonctionne avec bash 4.2
printfse produit dans le code d’exempleSuggestion d’un meilleur cas d’usage pour lister les processus sur un système où procps n’est pas installé
On peut aussi écrire un listener et un client en bash, mais ce n’est pas recommandé en pratique